这是我的一般问题:
我的项目P取决于A,它取决于B,它取决于C,这取决于D的1.0.1版本.
D版本1.0.1存在问题,我想强制使用另一个模块.我不知道如何在我的项目的POM中声明这个,因为我没有直接添加对D的依赖.这是C声明对D的依赖.
重要说明:在这种情况下,不仅更改了版本,还更改了组和工件.因此,这不仅仅是覆盖依赖项的版本,而是排除模块并包含另一个模块.
在具体的情况下,D是StAX,其1.0.1有一个bug.根据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依赖:tree"
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
Run Code Online (Sandbox Code Playgroud)
在我的项目的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>
Run Code Online (Sandbox Code Playgroud)
提前致谢.