根据这个答案,假设您使用某种类似Maven Assembly插件或Maven EAR插件的插件来将项目的所有依赖项复制到目标文件夹。
很可能像Guice这样的一些依赖项正在拉动aopalliance:aopalliance
工件(groupId:artifactId表示法),而您刚刚添加了对org.aopalliance:aopalliance
的依赖关系。 Maven不知道它只是两次添加相同的类文件 - 它检查groupId和artifactId以查看两个罐子是否(据说)不同。
你有两个选择:
删除依赖于你的劲歌,或改变的groupId到aopalliance
。
跟踪aopalliance
依赖关系来自哪里,然后从有问题的构件的传递依赖性中排除aopalliance
构件。
您可以通过运行mvn dependency:tree
做(2),或通过打开你的POM并查看相关层次标签m2eclipse插件。下面是依赖的一些示例输出:树命令:
mygroup:earproj:pom:2.3.1-SNAPSHOT
+- mygroup:wslib:jar:2.3.1-SNAPSHOT:compile
| +- axis:axis:jar:1.4:compile
| | +- org.apache.axis:axis-saaj:jar:1.4:compile
| | +- axis:axis-wsdl4j:jar:1.5.1:runtime
| | +- commons-logging:commons-logging:jar:1.0.4:runtime
| | \- commons-discovery:commons-discovery:jar:0.2:runtime
| +- org.apache.axis:axis-jaxrpc:jar:1.4-noqname:compile
| \- commons-httpclient:commons-httpclient:jar:3.0.1:runtime
| \- commons-codec:commons-codec:jar:1.2:runtime
+- mygroup:commonclass:2.3.1-SNAPSHOT:compile
看看共享记录为例,我们可以看到,轴:轴库依赖于它。
一旦知道哪个库取决于aopalliance
,you can add an exclusion in the POM。如果您保留此排除和org.aopalliance
依赖关系在同一个POM中的声明,将是首选。
依赖项不应该对目标目录有任何影响。你能包含整个pom.xml吗? – bpgergo
这个工件是手动安装在你的连接处还是通过镜子从中央拉出来? – Jon7
工件被手动安装在nexus中,并且据我所知,在pom中安装和引用的方式与其他工件在pom中的安装和引用方式之间完全没有区别。因此我的迷茫。 – ccc