マルチモジュールのMavenプロジェクトでは、ビルドに4〜6分かかることがありました。過去数ヶ月にわたって、ビルドごとに20 +分に増加しました。 1つの症状は、私が<を打つまでと入力するまでビルドが一時停止しているように見えることがあるということです。しかし、Mavenビルドはビルドサーバ上でまだ正常に動作しています(6分、休止なし)。Maven Assemblyプラグインをどのように設定すると問題が発生するのでしょうか?
ビルドコマンドがあるmvn clean package -D<profile>
は、私たちのプラグインのいくつかは、次のとおりです。
- PMDを
- FindBugsの
- 総会
- スリフトコンパイラ
- JSPC-のmaven-pluginの
- maven-replacer-pl ugin
また、Googleには内部Nexusリポジトリがあります。
更新:
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Project Parent ............................. SUCCESS [17.703s]
[INFO] Dependencies ............................... SUCCESS [0.109s]
[INFO] Thrift Service ............................. SUCCESS [1:51.141s]
[INFO] Thrift API Client Sample ................... SUCCESS [14.219s]
[INFO] Application ................................ SUCCESS [14:07.984s]
[INFO] Webapps Parent ............................. SUCCESS [1.250s]
[INFO] Webapp A ................................... SUCCESS [27.547s]
[INFO] Webapp B.................................... SUCCESS [20.672s]
[INFO] Webapp C ................................... SUCCESS [1:14.656s]
[INFO] Assembly ................................... SUCCESS [5:47.219s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 24:23.234s
[INFO] Finished at: Fri Jan 27 10:47:38 EST 2012
[INFO] Final Memory: 25M/66M
[INFO] ------------------------------------------------------------------------
ビルド・サーバー(チーム市):ログに
ローカルビルドのビルド
[02:16:31]: [INFO] ------------------------------------------------------------------------
[02:16:31]: [INFO] Reactor Summary:
[02:16:31]: [INFO]
[02:16:31]: [INFO] Project Parent ............................. SUCCESS [3.421s]
[02:16:31]: [INFO] Dependencies ............................... SUCCESS [3.157s]
[02:16:31]: [INFO] Thrift Service ............................. SUCCESS [41.314s]
[02:16:31]: [INFO] Thrift API Client Sample ................... SUCCESS [1.220s]
[02:16:31]: [INFO] Application ................................ SUCCESS [4:09.617s]
[02:16:31]: [INFO] Webapps Parent ............................. SUCCESS [0.323s]
[02:16:31]: [INFO] Webapp A ................................... SUCCESS [12.811s]
[02:16:31]: [INFO] Webapp B ................................... SUCCESS [16.496s]
[02:16:31]: [INFO] Webapp C ................................... SUCCESS [19.011s]
[02:16:31]: [INFO] Assembly ................................... SUCCESS [1:45.872s]
[02:16:31]: [INFO] ------------------------------------------------------------------------
[02:16:31]: [INFO] BUILD SUCCESS
[02:16:31]: [INFO] ------------------------------------------------------------------------
[02:16:31]: [INFO] Total time: 7:33.655s
[02:16:31]: [INFO] Finished at: Wed Jan 25 02:16:31 EST 2012
[02:16:31]: [INFO] Final Memory: 42M/317M
[02:16:31]: [INFO] ------------------------------------------------------------------------
を更新2
ここでは、経験あります私のビルドは、このbashスクリプトが提供するタイムスタンプ分析を使用して、そのほとんどの時間を費やしている場所の分析は:https://gist.github.com/993139
いくつかのビルドのために、私はFindBugsは、PMDとユニットテストを無効にすることができると私には思えます。しかし、私は最終的なビルドアウトプット、すなわちAssemblyが必要です。だから私の質問に焦点を当てさせてください。何がAssembly Pluginを遅く動かすことができますか?
アップデート3
予想したように、FindBugsは、PMDとユニットテストは、私は議会が4分を取るべきではないと思います
50%以上[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Project Parent .................................... SUCCESS [13.969s]
[INFO] Dependencies ...................................... SUCCESS [0.094s]
[INFO] Thrift Service .................................... SUCCESS [47.125s]
[INFO] Thrift API Client Sample .......................... SUCCESS [11.922s]
[INFO] Application ....................................... SUCCESS [3:10.922s]
[INFO] Webapps parent .................................... SUCCESS [0.468s]
[INFO] Webapp A .......................................... SUCCESS [18.157s]
[INFO] Webapp B .......................................... SUCCESS [18.437s]
[INFO] Webapp C .......................................... SUCCESS [1:00.672s]
[INFO] Assembly .......................................... SUCCESS [3:55.969s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9:58.609s
[INFO] Finished at: Mon Feb 06 10:21:01 EST 2012
[INFO] Final Memory: 24M/59M
[INFO] ----------------------------------------------------------------------
でビルドを切りました。組み立て段階では、次のような多くのものが見られます。
[INFO] --- maven-assembly-plugin:2.2:single (assembly-full) @ assembly ---
[INFO] Reading assembly descriptor: C:\projects\my-project\assembly/src/main/assembly/assembly-full.xml
[INFO] project-2.9.3-SNAPSHOT/config/ already added, skipping
[INFO] project-2.9.3-SNAPSHOT/config/ already added, skipping
[INFO] project-2.9.3-SNAPSHOT/ already added, skipping
[INFO] project-2.9.3-SNAPSHOT/var/ already added, skipping
各アセンブリのアーチファクトが繰り返されています。これがどういうわけか遅さの原因になりますか?
Mavenビルドの出力の終わりの出力は何ですか?モジュールごとに使用されている時間があります。これは最初にどこを開始するかを示しています...キーボードの動作を一時停止して待機するビルド本当に奇妙な音...あなたはmvn cleanパッケージ/ mvn deployのみを実行していますか、またはmvnサイトを実行していますか? – khmarbaise
質問を部分的な回答で更新しました。もちろん、ビルド終了プリントを得るのに1/2時間かかるでしょう: - \ – noahlz
Windowsのコマンドラインからビルドを実行し、誤ってターミナルウィンドウをクリックするとビルドが一時停止します(少なくとも私の経験)。それを続けるには、打つエンターを押してください。これが休止の原因になりますか? – BenjaminLinus