これはearプロジェクトの簡単な例です。親pomはEAR、EJB、およびJARを集約しています。Jenkins and maven multi moduleプロジェクトに不具合がありません
私はSVNに保存されている、Mavenプロジェクトでは、この構造を持っている:
parent/
|- pom.xml
|- modulA/
| |- pom.xml
|- modulB/
| |- pom.xml
はmodulBはモジュラ
の依存関係のpom.xmlは
<modules>
<module>modulA</module>
<module>modulB</module>
</modules>
モジュールのセクションを持っており、依存関係管理部
<dependencyManagement>
<dependencies>
<dependency>
<groupId>group</groupId>
<artifactId>modulA</artifactId>
<version>0.0.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>group</groupId>
<artifactId>modulB</artifactId>
<version>0.0.2-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>
私はMavenの2.2.1で初めてコンパイル時に0
サブモジュールは、(Windowsの場合)
mvn clean compile
私は何の問題を持っていない私のPCで
<parent>
<groupId>group</groupId>
<artifactId>parent</artifactId>
<version>0.0.2-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
親を参照
けど....ジェンキンスが初めてコンパイルしよう(Mavenの2.2.1 LinuxのRedHatの)
Missing:
----------
1) modulA:jar:0.0.2-SNAPSHOT
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=group -DartifactId=modulA -Dversion=0.0.2- SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file
Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId=group -DartifactId=modulA -Dversion=0.0.2-SNAPSHOT -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
Path to dependency:
1) modulB:ejb:0.0.2-SNAPSHOT
2) modulA:jar:0.0.2-SNAPSHOT
----------
1 required artifacts are missing.
なぜ????????
その後、私のPCからArtifactoryにプロジェクトを展開すると、Jenkinsがリポジトリからアーティファクトをダウンロードするため、Jenkinsに問題はありませんが、なぜJenkinsはリポジトリのアーティファクトに依存していますか?事前に
:(
おかげ
編集:私はdependencyManagementセクションのみ依存関係「を定義」が、思った
サブモジュールは、依存関係、依存関係を使用していない場合 dependencyManagementセクションを削除しても、Jenkinsの問題がまだ発生します。
これは私のPCで動作します。アウト問題。
モジュールの1つに有効なPOMを取得することは可能ですか?ローカルで動作する場合は、問題が導入される前に、アーティファクトが開発の一部としてローカルリポジトリにデプロイされている可能性があります。新しいマシン(ビルドマシンなど)でビルドしようとするまで、 – chrisbunney
あなたの箱のローカルMavenリポジトリをきれいにすると、あなたの箱のビルドは初めて失敗しますか?私は「はい」と推測しています。そうであれば、ビルド前にmodulA-0.0.2-SNAPSHOT.jarが参照されています。あなたの親とモジュールのポムをもっと見ることなく、それが何であるか言うのは難しいです。 – BenjaminLinus