这是我的一般性问题:
我的项目P依赖于A,后者依赖于B,后者依赖于C,后者依赖于D的1.0.1版本。
D的1.0.1版本存在问题,我想强制使用其他模块。我不知道如何在我的项目的POM中声明这一点,因为我没有直接添加对D的依赖。是C声明了对D的依赖。
重要:在这种情况下,不仅版本会更改,组和工件也将更改。因此,这不仅仅是覆盖依赖项版本的问题,而是排除一个模块并包含另一个模块的问题。
在具体情况下,D是StAX,其1.0.1有一个bug。根据错误中的注释,“通过用stax-api-1.0-2(maven GroupId = javax.xml.stream)替换stax-api-1.0.1(maven GroupId = stax)解决了问题”正在尝试。
因此,D = stax:stax-api:jar:1.0.1,C = org.apache.xmlbeans:xmlbeans:jar:2.3.0
我正在使用maven 2.0.9,以防万一。
mvn依赖项输出:树“
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
在我的项目的POM中,我对“ 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>
提前致谢。