我想将持续集成作业(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