継続的な統合ジョブ(Hudson)を2つのステップに分割したいと考えています。 (ビルドとレポートの実行時間が長くかかるため) 最初のジョブでは、マルチモジュールのmavenプロジェクトを "mvn package"で正常にビルドします。 次に、自分のワークスペースを別の場所にコピーし、目標 "site"と/またはfindbugs/checkstyle/pmdを指定してプロジェクトを再構築し、レポートを作成します。 しかし、これは動作しません! Maven は私のサブモジュールの依存関係を解決できません。 (しかし、すべてのJARファイルがターゲットフォルダで利用可能です。)マルチモジュールプロジェクトのMavenサイトが依存関係を解決できませんでした
例: 私の構造は次のようになります。
- 親
- B
- C
- D
プロジェクトCは、依存プロジェクトBとして持つ
私は「MVNサイト」ですべてを構築する場合、それはプロジェクトAとBのためのすべてのレポートを生成します。しかし、プロジェクトCのエラーメッセージ "プロジェクトBの依存関係を解決できませんでした"で停止しました。 しかし、プロジェクトBはすでに "mvnパッケージ"でビルドされています。私。プロジェクトBのJARファイルがターゲットフォルダにあります。
"mvn install"なしでサブモジュールBからの依存関係を解決する方法はありますか? (私はしたいが、私はそれが同じコードベースを持つ他のジョブのために危険なことができ恐れる私のCIサーバー上でこれをしない。。)
更新08/20/12:ルートの
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:Bの
<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>
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
mvn cleanパッケージもエラーなく実行されますか? – khmarbaise
はい。 "mvn clean package"はエラーなしで実行されます。 "mvn clean site"はありません。後でコードスニペットをアップロードします。 – user1606528