我想將持續集成作業(Hudson)分成兩個步驟。 (因爲一起構建和報告的運行時間太長。) 在第一份工作中,我成功地使用「mvn package」構建了我的多模塊maven項目。 然後我將我的工作區複製到另一個位置,並嘗試再次使用目標「site」和/或findbugs/checkstyle/pmd來創建項目來創建項目。 但是這不起作用! Maven 無法解析我的子模塊的依賴關係。 (但所有JAR文件是在其目標文件夾中可用。)多模塊項目上的Maven站點無法解析依賴關係
實施例: 我的結構是這樣的:
- 父
- 甲
- 乙
- Ç
- d
項目C具有作爲依賴項目B.
當我建立與「MVN網站」的一切,它生成項目A和B的所有報告。但在項目C中停止,並顯示錯誤消息「無法解析項目B的依賴關係」。 但是項目B已經建立了「mvn包」。即我可以在目標文件夾中找到項目B的JAR文件。
是否有任何方法來解決從子模塊B的依賴關係沒有「mvn安裝」? (我不想做我的CI服務器上我擔心這可能是危險與相同的代碼庫的其他工作。)
更新12年8月20日:
根POM文件夾:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>Foo</name>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>parent</module>
</modules>
</project>
父POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>Foo</name>
<groupId>foo</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
<modules>
<module>../bar-a</module>
<module>../bar-b</module>
<module>../bar-c</module>
<module>../bar-d</module>
</modules>
[...]
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.1</version>
[...]
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.7.1</version>
[...]
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.9.1</version>
[...]
</plugin>
</plugins>
</reporting>
</project>
B的POM :
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>foo</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<relativePath>../parent</relativePath>
</parent>
<name>Bar B</name>
<artifactId>bar-b</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
[...]
</project>
的C POM:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>foo</groupId>
<artifactId>parent</artifactId>
<version>1.0</version>
<relativePath>../parent</relativePath>
</parent>
<name>Bar C</name>
<artifactId>bar-c</artifactId>
<packaging>jar</packaging>
[...]
<dependencies>
<dependency>
<groupId>foo</groupId>
<artifactId>bar-b</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
[...]
</project>
沒有pom的很難猜測......但它聽起來像一個依賴/模塊沒有正確配置。 mvn清潔網站應該運行沒有錯誤。 – khmarbaise 2012-08-17 14:41:20
難道一個MVN清潔包無差錯運行呢? – khmarbaise 2012-08-17 20:58:14
是的。 「mvn clean package」運行無誤。 「mvn清潔網站」不是。稍後我會上傳代碼段。 – user1606528 2012-08-20 06:59:04