リクエストをプロキシするためにローカルのアーティファクトを使用していますが、ビルドとテストのフェーズはまだ少し遅いです。遅いのは実際のコンパイルとテストではなく、maven2 フレームワークの「ウォームアップ」です。何か案は?
8 に答える
ビルド タスクの一部を最適化する可能性があります。たとえば、「クリーン」タスクは、削除ではなく「ターゲット」フォルダーの名前を変更するという簡単なトリックを使用して、数分から数ミリ秒に最適化できます。
その方法の詳細については、Maven ビルドの高速化を参照してください。
使用しているMavenのバージョンはわかりません。2と想定していますが、Maven 1.xで使用しているものを使用して、速度を上げ、ビルドを少し速くします。
これらは、junitテストを新しいプロセスにフォークします(テストなどで環境変数を使用する場合にも役立ち、テストにもう少しメモリを与えます。
-Dmaven.junit.fork=true
-Dmaven.junit.jvmargs=-Xmx512m
これはあなたのために物事をスピードアップするかもしれないコンパイルをフォークします
-Dmaven.compile.fork=true
これが少し役立つことを願っています、試してみてください。
また、maven2ビルドで速度を上げることも参照してください。
Maven3 ( ) を使用している場合は、このガイド$ mvn -version
に従うこともできます。私の場合、結果は次のとおりです。
通常の実行:
$ mvn clean install
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:05 min
[INFO] Finished at: 2015-07-15T11:47:02+02:00
[INFO] Final Memory: 88M/384M
並列処理あり (4 スレッド):
$ mvn -T 4 clean install
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:22 min (Wall Clock)
[INFO] Finished at: 2015-07-15T11:50:57+02:00
[INFO] Final Memory: 80M/533M
並列処理 (コアあたり 2 スレッド)
$ mvn -T 2C clean install
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:12 min (Wall Clock)
[INFO] Finished at: 2015-07-15T12:00:29+02:00
[INFO] Final Memory: 87M/519M
[INFO] ------------------------------------------------------------------------
ご覧のとおり、違いはほぼ 1 分で、速度が 20 ~ 30% 近く向上しています。
-DskipTests=true
単体テストをスキップするために使用できます。これにより、ビルドが高速化されます
私は、reactor プロジェクトの解析が単一 pom プロジェクトよりも大幅に遅いことを発見しました。ビルドがリアクター (マルチモジュール) であり、開発者がすべてのモジュールで同時に作業していない場合、親 POM を削除して個別にビルドし、ローカル リポジトリを使用して依存関係を解決できます。欠点は、依存モジュールが変更を確認できるように、モジュールをインストールまたはデプロイする必要があることです。
また、いくつかの大幅な速度改善を含む新しい Maven 2.1 M1 を確認することもできます。
これらのいずれも役に立たない場合は、プロジェクト構成 (モジュール構造とプラグイン)、コマンド ライン パラメーター、およびハードウェア構成 (メモリとディスク) に関する詳細を投稿してください。-X を指定して Maven を実行すると、どこで時間がかかっているかがわかります。
ローカルにインストールされた Nexus を使用します。
最初に、このようなものを使用してビルド時間をより細かく分析し、最も時間がかかっている候補を特定する必要があります。
テストはテストごとに H2 データベースをスピンアップしていますか? 外部jarファイルのダウンロードに時間がかかっていませんか? これにより、調査の焦点をどこに置くかが決まります。go-fast フラグを適用するだけでは、デフォルトで既に含まれているため、通常は機能しません。また、スキップ フラグでテストを犠牲にしたくありません。