Tôi có hai phụ thuộc trong pom của tôi được gọi là A và B. Cả A và B có sự phụ thuộc chuyển tiếp trên một tạo phẩm C (cassandra-all). A và B sử dụng các phiên bản khác biệt của C. Phụ thuộc A là tạo phẩm astyanax.
Tôi muốn giữ Version của C mà đi kèm với B. Tôi thực hiện bằng cách thêm một loại trừ trong A (Astyanax) cho C.Làm cách nào để loại trừ sự phụ thuộc cho một phạm vi cụ thể?
Thật không may, tôi muốn phạm vi của B là 'test' . Điều này có nghĩa rằng với việc loại trừ trong A, C sẽ không được đưa vào bên ngoài phạm vi kiểm tra.
Tôi làm cách nào để giải quyết vấn đề này? Có thể loại trừ một phạm vi cụ thể không? Ngoài ra, tôi có thể chỉ định phiên bản nào sẽ sử dụng cho phụ thuộc chuyển tiếp không?
Ví dụ:
Đây là những gì pom của tôi trông giống như:
Artifact A (astyanax) với loại trừ sự phụ thuộc vào Artifact C (gọi tắt là cassandra-tất cả)
<dependency>
<groupId>com.netflix.astyanax</groupId>
<artifactId>astyanax</artifactId>
<version>1.0.4</version>
<exclusions>
<exclusion>
<groupId>org.apache.cassandra</groupId>
<artifactId>cassandra-all</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.cassandraunit</groupId>
<artifactId>cassandra-unit</artifactId>
<version>1.1.1.1</version>
<scope>test</scope>
</dependency>
Vì vậy, cụ thể: làm thế nào tôi có thể bao gồm cassandra-tất cả khi tôi chạy mã bên ngoài phạm vi kiểm tra và vẫn giữ phạm vi kiểm tra cassandraunit chỉ?
có thể trùng lặp của [Loại trừ phụ thuộc maven để thử nghiệm] (https://stackoverflow.com/questions/12053316/exclude-maven-dependency-for-tests) – Andremoniy