Mavenビルドを高速化する方法はありますか? 質問する

Mavenビルドを高速化する方法はありますか? 質問する

マルチモジュール Java プロジェクトがあります。Maven では、ビルドに約 40 秒かかります。使用するスレッド数とコア数に -T および -C 引数を指定して、マルチスレッド ビルドで Maven も試してみました。しかし、ビルドのウォールタイムに大きな改善は見られませんでした。
私は Maven 3.2.3 を使用しており、プロジェクトを頻繁にビルドする必要があることがあります。
クリーン ゴールに時間がかかることはわかっていますが、省略することはできません。
提案をお願いします...

編集:
注: 私の場合、クリーンアップにはあまり時間がかかりません。1 秒で完了します。残りの時間はインストールにかかっています。

ベストアンサー1

注: まず、私の知る限り、ここにあるすべての回答以外に、Maven で利用できる組み込みオプションはありません。


複数のスレッドで Maven ビルドを実行すると、ビルドが高速化されます。例:

mvn clean install -T100

ここで、-T はハードウェアに基づいて必要なスレッドの数を指定します。

以下はウィキからの派生です

Maven 3.x には並列ビルドを実行する機能があります。コマンドは次のとおりです。

  • mvn -T 4 クリーンインストール 4スレッドでビルド
  • mvn -T 1C クリーンインストール CPU コアごとに 1 スレッド
  • mvn -T 1.5C クリーンインストール CPU コアあたり 1.5 スレッド

実行の評価方法(Maven 3 の並列ビルドを参照)?

ここに画像の説明を入力してください

グラフ内の各ノードは、マルチモジュール ビルド内のモジュールを表します。「レベル」は、内部リアクター依存関係グラフ内の最初のモジュールまでの距離を示します。Maven は、マルチモジュール ビルドの宣言されたモジュール間依存関係に基づいてこのグラフを計算します。親 Maven プロジェクトも依存関係であるため、ほとんどのプロジェクト グラフの上部に 1 つのノードがあるのはそのためです。リアクター外部の依存関係はこのグラフに影響しません。

最後に、テストの実行をスキップしたい場合は、 も使用できます-DskipTests

注意 :一部のプラグインはマルチスレッド ビルダーと互換性がない可能性がありますが、動作する可能性もあります。ただし、以下の警告メッセージが表示されます。マルチスレッド サポートについては、プラグインのドキュメントを参照する必要がある場合があります。

[WARNING] *****************************************************************                                                                                                                                 
[WARNING] * Your build is requesting parallel execution, but project      *                                                                                                                                 
[WARNING] * contains the following plugin(s) that have goals not marked   *                                                                                                                                 
[WARNING] * as @threadSafe to support parallel building.                  *                                                                                                                                 
[WARNING] * While this /may/ work fine, please look for plugin updates    *                                                                                                                                 
[WARNING] * and/or request plugins be made thread-safe.                   *                                                                                                                                 
[WARNING] * If reporting an issue, report it against the plugin in        *                                                                                                                                 
[WARNING] * question, not against maven-core                              *                                                                                                                                 
[WARNING] *****************************************************************                                                                                                                                 
[WARNING] The following plugins are not marked @threadSafe in test-project:                                                                                                                          
[WARNING] de.dentrassi.maven:rpm:0.9.2                                                                                                                                                                      
[WARNING] Enable debug to see more precisely which goals are not marked @threadSafe.                                                                                                                        
[WARNING] *****************************************************************    

おすすめ記事