Tôi đang cố gắng tìm một cách "chung chung" để loại trừ một sự phụ thuộc quá độ từ việc được đưa vào mà không phải loại trừ nó khỏi tất cả các phụ thuộc phụ thuộc vào nó. Ví dụ, nếu tôi muốn loại trừ slf4j, tôi thực hiện như sau:Có cách nào để loại trừ phụ thuộc Maven trên toàn cầu không?
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jmx</artifactId>
<version>3.3.2.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
<type>jar</type>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
Đây là một phần để làm sạch các tập tin pom, một phần để tránh các vấn đề trong tương lai với những người bổ sung phụ thuộc mà phụ thuộc vào sự phụ thuộc đó loại trừ - và quên loại trừ nó.
Có cách nào không?
Không giải quyết vấn đề, nhưng maven-enforcer-plugin có một [cấm phụ thuộc đặc trưng] (https://maven.apache.org/ thi hành/thi hành-quy tắc/cấmDependencies.html) sẽ thất bại trong việc xây dựng nếu phụ thuộc không mong muốn lẻn vào. Bạn vẫn phải tự loại trừ chúng, mặc dù: -/ – dnault
Một câu trả lời thay thế có sẵn ở đây: http://stackoverflow.com/a/39979760/363573 – Stephan