6

私はJenkins1.462を使用しており、Mavenのバージョンは3.0.4です。Jenkinsで、チェックボックス「インクリメンタルビルド-変更されたモジュールのみをビルドする」を有効にしました

私は2つの質問を理解したい:

  1. インクリメンタルビルドで十分かどうか? ここで、SubversionからのマルチモジュールMavenビルドで単一モジュールのJenkinsビルドをトリガーするにはどうすればよいですか?たとえば、100%では機能しないと述べられています。19ページのhttp://www.slideshare.net/andrewbayer/7-habits-of-highly-effective-jenkins-usersは、インクリメンタルビルドが補完的であると述べています。完全なビルドであり、置き換えではありません。

  2. インクリメンタルビルド-変更されたモジュールのビルドのみが実際に期待どおりに機能するかどうか。 これはどういう意味ですか?モジュールA、B、X、C、Dがある場合、XはAとBを使用し、CはXを使用し、DはCを使用し、Xモジュールを変更します。モジュールX(itslef)、C(Xを直接使用する)およびD(推移閉包にある; DはCを使用し、Cを使用する)を再コンパイルしたい。

注:これは、インクリメンタルビルドを有効にするために行った唯一の変更です。

4

1 に答える 1

3

Mavenのドキュメントで述べられているように、インクリメンタルビルドは少なくとも3.0.4まではあまり信頼できません。

現在(3.0.4)Apache Mavenは、インクリメンタルビルドを十分にサポートしていません。

https://cwiki.apache.org/confluence/display/MAVEN/Incremental+Builds(最初の行)

代わりに、ビルドを高速化するために、次の2つのアプローチのいずれかを使用することを強くお勧めします。

  • 並列ビルドを使用します。大規模なプロジェクトでの私の経験では、これはうまく機能し、(もしあれば)最小限のリスクでビルド時間を大幅に短縮できます。https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3のようなものを実行するだけですmvn -T 1.5C clean install

  • モジュールが独立している場合は、モジュールを別のプロジェクトに移動し、Mavenの依存関係を使用してモジュールを接着することができます。

于 2013-03-31T10:37:23.873 に答える