我有2个maven项目A和B. B对A的胖罐有一个maven编译时依赖。
将B作为maven项目导入时,A会被添加为Module依赖项而不是目标jar。
有没有办法禁用它?
B的pom.xml(依赖部分)
<dependency>
<groupId>com.xxx.yyy</groupId>
<artifactId>A</artifactId>
</dependency>
A的pom.xml(工件详情):
<groupId>com.xxx.yyy</groupId>
<artifactId>A</artifactId>
<version>trunk-SNAPSHOT</version>
A打包给Fat jar,B打包使用版本插件来确定A的版本。
问题:
这两个是Intellij项目中的模块。无论我导入它们的方式如何,Project B的依赖项列表都将项目A显示为模块依赖项,而不是项目A的jar的SNAPSHOT(或特定版本)。
因此,每当我尝试在Project B上打包/安装时,我都会看到来自A的一些辅助类的ClassNotFound。
编译项目B的日志:
Error:(21, 40) java: cannot find symbol
symbol: class ImmutableMap
location: package org.xxx.yyy.zzz
Error:(22, 40) java: cannot find symbol
symbol: class ImmutableSet
location: package org.xxx.yyy.zzz
在A的SNAPSHOT jar中可以看到同一个类文件。
答案 0 :(得分:0)
<dependency>
<groupId>com.xxx.yyy</groupId>
<artifactId>A</artifactId>
<version>trunk-SNAPSHOT<version>
</dependency>
您可以通过向B'pom.xml添加版本然后mvn clean install
答案 1 :(得分:0)
Found the answer on a different post. https://stackoverflow.com/a/11545441/639107
中对齐文本通过项目源位置解析SNAPSHOT依赖项