我有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