私は、トップレベルのmavenプロジェクトの束を含むGitリポジトリを持っています(それぞれは、pom.xmlを持つそれぞれのサブディレクトリにあります)。トップレベルは、これらのプロジェクトがリポジトリルートの直下のサブディレクトリにあることを意味します。これらのプロジェクトはすべて同じGitリポジトリにとどまるべきです。Jenkins:gitリポジトリから複数のトップレベルプロジェクトをビルドする方法は?
repo
+--- projectA
+--- pom.xml
+--- projectB
+--- pom.xml
これらは、独立したジェンキンジョブによって構築することができます。だから私たちはprojectAの仕事とprojectBの仕事を持っています。
以前はSubversionを使って、プロジェクトソースのみをチェックアウトし、pom.xmlからMavenビルドを実行するJenkinsジョブを(各プロジェクトごとに)設定することができました。
Gitモデル(おそらくすべてのDVCSで同じです)ではこれが変わり、ベストプラクティスは何か分かりません。私が見ている該当なしから、私は本当に好きないくつかのオプションがあります:
- 各ジェンキンスジョブが複製するconfiguredですが/フルGitのレポを引くと は、Mavenの構築のために/pom.xmlを指します。したがって、ジョブ にはすべてのコードが含まれていますが、そのスライスだけがビルドされています。
- Gitが扱うには少しトリッキーなこと(と簡単に破ることができる) に思えるサブモジュール(http://book.git-scm.com/5_submodules.html)を提供しています
- は、Mavenの親(プロジェクトのすべてが含まれているアグリゲータ)を作成します は、各プロジェクトをトリガーするプロジェクトが持つ(ビルド単一のジェンキンジョブ)。このpom.xmlには、projectAおよびprojectBの要素が含まれています。
さらに便利なアプローチがありますか(非常に典型的な設定です)。あなたの経験は何ですか?ベストプラクティス?
私はmartin.ahrerに非常に同意します。Subversionと比較すると、Gitはリポジトリのサブプロジェクトをチェックアウトする能力を持たないことが制限要因です。私はこの質問に素敵な答えが素晴らしいだろう。 – djangofan