Đây là vấn đề chung của tôi:
Dự án P của tôi phụ thuộc vào A phụ thuộc vào B phụ thuộc vào C phụ thuộc vào phiên bản 1.0.1 của D.
Đã xảy ra sự cố với phiên bản 1.0.1 của D và tôi muốn buộc sử dụng mô-đun khác. Tôi không biết làm thế nào để khai báo điều này trong POM của dự án của mình vì tôi chưa thêm trực tiếp phụ thuộc vào D. Đó là C khai báo sự phụ thuộc vào D.
Quan trọng: Trong trường hợp này, không chỉ phiên bản bị thay đổi, mà cả nhóm & tạo tác. Vì vậy, vấn đề không chỉ là ghi đè phiên bản của phụ thuộc, mà còn là loại trừ một mô-đun và bao gồm một mô-đun khác.
Trong trường hợp cụ thể, D là StAX có 1.0.1 có lỗi . Theo ghi chú trong lỗi, "các vấn đề đã được giải quyết bằng cách thay thế stax-api-1.0.1 (maven GroupId = stax) bằng stax-api-1.0-2 (maven GroupId = javax.xml.stream)" vì vậy tôi Tôi đang cố gắng đó.
Do đó, D = stax: stax-api: jar: 1.0.1 và C = org.apache.xmlbeans: xmlbeans: jar: 2.3.0
Tôi đang sử dụng maven 2.0.9 trong trường hợp có vấn đề.
Đầu ra của phụ thuộc mvn: cây "
mvn dependency:tree
[..snip..]
[INFO] +- org.apache.poi:poi-ooxml:jar:3.6:compile
[INFO] | +- org.apache.poi:poi-ooxml-schemas:jar:3.6:compile
[INFO] | | +- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
[INFO] | | | \- stax:stax-api:jar:1.0.1:compile
Trong POM của dự án của tôi, tôi có phụ thuộc sau vào "A":
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.6</version>
</dependency>
Cảm ơn trước.