我的模块如下:
root
daemon
common
tests
现在daemon
和test
都有<dependency>common</dependency>
。
我只是简单地写了它们,以便理解。
common
的版本为jaxrs-api
,2.1.1
的版本为2.0
。
构建了整个项目,对其进行了清理,但是daemon
和tests
仍显示旧版本。 common
版本在所有模块中都是一致的。 IntelliJ中的Dependency Analyzer插件仍然显示common
具有2.0,并且由于不匹配,代码存在编译问题。
每个模块的版本都来自root,如下所示:
<parent>
<groupId>com.mycompany.domain</groupId>
<artifactId>app-name</artifactId>
<version>1.0.10-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
除了上面的屏幕截图,下面是mvn dependency:tree
中唯一的jax-rs条目
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ common ---
[INFO] com.zzz:common:jar:1.0.10-SNAPSHOT
[INFO] +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.9.8:compile
[INFO] | +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.9.8:compile
[INFO] | \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.9.8:compile
[INFO] | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
[INFO] +- javax.ws.rs:javax.ws.rs-api:jar:2.1.1:compile
[INFO] +- org.testng:testng:jar:6.9.6:test
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ daemon ---
[INFO] com.zzz:daemon:jar:1.0.10-SNAPSHOT
[INFO] +- com.zzz:common:jar:1.0.10-SNAPSHOT:compile
[INFO] | +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.9.8:compile
[INFO] | | +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.9.8:compile
[INFO] | | \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.9.8:compile
[INFO] | +- javax.ws.rs:javax.ws.rs-api:jar:2.0:compile
[INFO] | \- com.paypal.usf:vo:jar:1.6.5:compile
有关问题,请参见daemon
依赖性日志,该日志将common
的旧版本与2.0
绑定在一起。我没有看到任何冲突,也没有看到jar来自其他依赖项。我还尝试过手动删除target
目录并删除.m2
内部的目录,但无济于事。
答案 0 :(得分:2)
运行maven依赖项:树并检查感兴趣的依赖项在哪里。
Maven总是采用与根节点相距较小距离的可笑依赖。
引荐-https://dzone.com/articles/solving-dependency-conflicts-in-maven