สามปีที่แล้วฉันแนะนำให้ใช้เวอร์ชัน 99 ไม่มีอยู่ แต่ตอนนี้ฉันหาวิธีที่ดีกว่าโดยเฉพาะอย่างยิ่งตั้งแต่เวอร์ชัน 99 ออฟไลน์:
ใน POM พาเรนต์ของโปรเจ็กต์ของคุณให้ใช้maven-enforcer-pluginเพื่อล้มเหลวการ build หากการพึ่งพาที่ไม่ต้องการคืบคลานเข้าสู่บิลด์ สิ่งนี้สามารถทำได้โดยใช้กฎการพึ่งพาของปลั๊กอินที่ถูกแบน :
<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>
จากนั้นเมื่อแจ้งเตือนคุณเกี่ยวกับการพึ่งพาที่ไม่ต้องการให้แยกออกใน<dependencyManagement>
ส่วนของ POM หลัก:
<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>
วิธีนี้การพึ่งพาที่ไม่พึงประสงค์จะไม่ปรากฏขึ้นโดยไม่ตั้งใจ (ซึ่งแตกต่างจาก<exclusion>
ที่ง่ายต่อการลืม) จะไม่สามารถใช้งานได้แม้ในช่วงเวลารวบรวม (ต่างจากprovided
ขอบเขต) ไม่มีการพึ่งพาปลอม (ต่างจากเวอร์ชั่น 99) และ ' จะทำงานโดยไม่มีที่เก็บข้อมูลที่กำหนดเอง (ต่างจากเวอร์ชั่น 99) วิธีการนี้จะทำงานได้ตามเวอร์ชันตัวแยกประเภทขอบเขตหรือรหัสกลุ่มทั้งหมดของวัตถุ - ดูเอกสารประกอบสำหรับรายละเอียด