Üç yıl önce Sürüm 99 Var Değil'i kullanmanızı öneriyorum, ancak şimdi daha iyi bir yol buldum, özellikle Sürüm 99 çevrimdışı olduğundan:
Projenizin üst POM'sinde, istenmeyen bağımlılık derlemeye sızarsa derlemeyi başarısız kılmak için maven-enforcer-plugin kullanın. Bu, eklentinin yasaklanmış bağımlılıklar kuralı kullanılarak yapılabilir :
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>only-junit-dep-is-used</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>junit:junit</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
Ardından bu, istenmeyen bir bağımlılık konusunda sizi uyardığında, üst POM'un <dependencyManagement>
bölümünde hariç tutun :
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-test</artifactId>
<version>2.1.8.RELEASE</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
Bu şekilde istenmeyen bağımlılık yanlışlıkla görünmez (sadece <exclusion>
unutulması kolay olanın aksine provided
), derleme zamanı ( kapsamın aksine ) sırasında bile kullanılamaz , sahte bağımlılıklar yoktur (Sürüm 99'un aksine) ve ' özel bir depo olmadan çalışacaktır (Sürüm 99'un aksine). Bu yaklaşım, yapının sürümüne, sınıflandırıcılarına, kapsamına veya tüm bir gruba göre de çalışacaktır - ayrıntılar için belgelere bakın.