intellij多模块项目将模块添加为依赖而不是它的jar

时间:2016-05-24 15:34:01

标签: maven intellij-idea

我有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中可以看到同一个类文件。

2 个答案:

答案 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依赖项