Ba năm trước tôi đã khuyến nghị sử dụng Phiên bản 99 Không tồn tại, nhưng bây giờ tôi đã tìm ra một cách tốt hơn, đặc biệt là vì Phiên bản 99 đang ngoại tuyến:
Trong POM gốc của dự án của bạn, hãy sử dụng maven-execcer-plugin để không xây dựng nếu sự phụ thuộc không mong muốn len vào bản dựng. Điều này có thể được thực hiện bằng cách sử dụng quy tắc phụ thuộc bị cấm của 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>
Sau đó, khi thông báo cho bạn về một phụ thuộc không mong muốn, hãy loại trừ nó trong phần POM gốc <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>
Bằng cách này, sự phụ thuộc không mong muốn sẽ không xuất hiện một cách tình cờ (không giống như <exclusion>
dễ bị quên), nó sẽ không khả dụng ngay cả trong thời gian biên dịch (không giống như provided
phạm vi), không có phụ thuộc không có thật (không giống như Phiên bản 99) và nó ' sẽ hoạt động mà không có kho lưu trữ tùy chỉnh (không giống như Phiên bản 99). Cách tiếp cận này thậm chí sẽ hoạt động dựa trên phiên bản, phân loại, phạm vi hoặc toàn bộ nhóm của tạo tác - xem tài liệu để biết chi tiết.