我有maven多模块项目。如何使一个模块依赖于另一个模块工件?
A: parent.
B: child1.
C: child2.
B将打包获取jar文件,然后c将使用此jar文件编译代码。
在B中,如果我运行mvn package
,它将创建b.jar
(留在B/target/jars
而不是B/target
-作为另一个目的)。
在C中,我需要使用b.jar
来编译代码。
现在,从A,我运行时:mvn package
。首先,我成功地为B创建了b.jar
文件。
但是,当它进入C的编译阶段时,它看起来像C在类路径中不识别b.jar
(因为C的代码无法导入类来自B的文件)。
我的问题是:我该如何解决这个问题?
---------- Below
是POM文件
A: pom.xml
<groupId>AAA</groupId>
<artifactId>A</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>C</module>
<module>B</module>
</modules>
B: pom.xml
<groupId>AAA</groupId>
<artifactId>B</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<parent>
<artifactId>A</artifactId>
<groupId>AAA</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
C: pom.xml
<parent>
<artifactId>A</artifactId>
<groupId>AAA</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>AAA</groupId>
<artifactId>C</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>AAA</groupId>
<artifactId>B</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
....
正如最佳实践(与此问题无关),模块B和C不应声明自己的groupId和版本;他们应该从父(模块A)POM继承这些。他们仍然需要申报自己的包装和artifactId。 – 2010-12-08 00:17:42