Tiga tahun lalu saya merekomendasikan menggunakan Versi 99 Tidak Ada, tapi sekarang saya sudah menemukan cara yang lebih baik, terutama karena Versi 99 sedang offline:
Di POM induk proyek Anda, gunakan maven-penegak-plugin untuk gagal membangun jika ketergantungan yang tidak diinginkan merangkak ke dalam membangun. Ini dapat dilakukan dengan menggunakan aturan dependensi yang dilarang plugin :
<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>
Kemudian ketika itu memberi tahu Anda tentang ketergantungan yang tidak diinginkan, kecualikan di bagian induk POM <dependencyManagement>
:
<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>
Dengan cara ini ketergantungan yang tidak diinginkan tidak akan muncul secara tidak sengaja (tidak seperti hanya <exclusion>
yang mudah dilupakan), itu tidak akan tersedia bahkan selama waktu kompilasi (tidak seperti provided
ruang lingkup), tidak ada dependensi palsu (tidak seperti Versi 99) dan itu ' akan bekerja tanpa repositori khusus (tidak seperti Versi 99). Pendekatan ini bahkan akan bekerja berdasarkan versi artifact, pengklasifikasi, ruang lingkup atau seluruh kelompok - lihat dokumentasi untuk detailnya.