22 Ağustos 2023 Salı

Conflicting Transitive Dependency

Giriş
İstenilen transitive dependency sürümünü tanımlamak için kullanılabilir. Açıklaması şöyle
The point of dependencyManagement is to allow me to specify a version for transitive dependencies. 
Örnek
Şöyle yaparız
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>conflicting.group</groupId>
      <artifactId>TransitiveDependency</artifactId>
      <version>desired.version</version>
    </dependency>
  </dependencies>
</dependencyManagement>
Örnek - BOM
Şöyle yaparız. Burada Log4J2 için BOM kullanılıyor. Böylece tüm projedeki log4j sürümü değiştirilebiliyor.
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-bom</artifactId>
      <version>${log4j2.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

Örnek
Bir projede snakeyaml kütüphanesinin eski bir sürümü  transitive dependency olarak gelsin ama biz daha yeni bir sürüm kullanmak isteyelim. Şöyle yaparız
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.yaml</groupId>
      <artifactId>snakeyaml</artifactId>
      <version>1.32</version>
    </dependency>
  </dependencies>
</dependencyManagement>

Hiç yorum yok:

Yorum Gönder

Local Snapshot Kullanmak

Örnek Şöyle yaparız <repository> <id>snapshot-repository</id> <name>Maven2 Snapshot Repository</name> &l...