4 Aralık 2021 Cumartesi

dependencyManagement Block veya Sharing dependency versions

Giriş
Maven'daki ortak dependencyManagement gradle ile yok. Maven ile şöyle yaparız
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.vaadin</groupId>
      <artifactId>vaadin-bom</artifactId>
      <version>10.0.11</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
Gradle ile mavenBom'ları kullanmak için şöyle yaparız
dependencies {
...
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.testcontainers:elasticsearch:1.17.4'
testImplementation "org.testcontainers:testcontainers:1.17.5"
testImplementation 'org.testcontainers:junit-jupiter'
testImplementation 'org.junit.jupiter:junit-jupiter'
}

dependencyManagement {
imports {
mavenBom "org.testcontainers:testcontainers-bom:${testcontainersVersion}"
mavenBom "org.junit:junit-bom:5.8.1"
}
}
Örnek
Şöyle yaparız
dependencies {
  // Add BOMs here
  implementation(platform('org.springframework.boot:spring-boot-dependencies:2.6.4'))

  // Then, now we can simply declare the dependencies we need
  // without having to worry about their versions
  implementation 'org.apache.kafka:connect-api'
  implementation 'com.rabbitmq:amqp-client'
}
Diğer Yöntemler
Bunun dışında eski gradle sürümlerinde çeşitli yöntemler icat edilmiş.

1. gradle.properties dosyası
Örnek
gradle.properties dosyası şöyledir
guavaVersion=30.0-jre
build.gradle dosyasında şöyle yaparız
dependencies {
    implementation("com.google.guava:guava:${guavaVersion}")
}
2. ext block
build.gradle dosyasında şöyle yaparız
ext {
   guavaVersion = '30.0-jre'
}

// ...

dependencies {
    implementation("com.google.guava:guava:${guavaVersion}")
}
3. version catalogs
Bu yeni ve ne olduğunu bilmiyorum

4. spring dependency plugin
spring dependency plugin yazısına taşıdım

5. java-platform plugin
Örnek
Şöyle yaparız
plugins {
  id 'java-platform'
  id 'maven-publish'
}

javaPlatform {
  allowDependencies() // This allows importing other BOMs
}

dependencies {
  api platform('org.springframework.boot:spring-boot-dependencies:2.6.4')
  constraints {
    api('group-01:module-01:1.1.0')
    api('group-01:module-02:1.1.0')
    api('group-02:module-01:2.3.1')
    api('group-02:module-02:2.3.1')
  }
}

Hiç yorum yok:

Yorum Gönder

Gradle Daemon Nedir?

Giriş Açıklaması  şöyle . Gradle Daemon arka planda çalışır. Çünkü Gradle'ı ayağa kaldırmak ve ilklendirmek çok uzun sürüyor.  Gradle ru...