35

リクエストをプロキシするためにローカルのアーティファクトを使用していますが、ビルドとテストのフェーズはまだ少し遅いです。遅いのは実際のコンパイルとテストではなく、maven2 フレームワークの「ウォームアップ」です。何か案は?

4

8 に答える 8

24

ビルド タスクの一部を最適化する可能性があります。たとえば、「クリーン」タスクは、削除ではなく「ターゲット」フォルダーの名前を変更するという簡単なトリックを使用して、数分から数ミリ秒に最適化できます。

その方法の詳細については、Maven ビルドの高速化を参照してください。

于 2009-02-19T09:15:12.210 に答える
9

使用しているMavenのバージョンはわかりません。2と想定していますが、Maven 1.xで使用しているものを使用して、速度を上げ、ビルドを少し速くします。

これらは、junitテストを新しいプロセスにフォークします(テストなどで環境変数を使用する場合にも役立ち、テストにもう少しメモリを与えます。

-Dmaven.junit.fork=true
-Dmaven.junit.jvmargs=-Xmx512m

これはあなたのために物事をスピードアップするかもしれないコンパイルをフォークします

-Dmaven.compile.fork=true

これが少し役立つことを願っています、試してみてください。

また、maven2ビルドで速度を上げることも参照してください。

于 2008-10-02T10:42:30.837 に答える
9

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% 近く向上しています。

于 2015-07-15T09:56:34.957 に答える
3

-DskipTests=true単体テストをスキップするために使用できます。これにより、ビルドが高速化されます

于 2011-12-28T20:41:42.023 に答える
2

私は、reactor プロジェクトの解析が単一 pom プロジェクトよりも大幅に遅いことを発見しました。ビルドがリアクター (マルチモジュール) であり、開発者がすべてのモジュールで同時に作業していない場合、親 POM を削除して個別にビルドし、ローカル リポジトリを使用して依存関係を解決できます。欠点は、依存モジュールが変更を確認できるように、モジュールをインストールまたはデプロイする必要があることです。

また、いくつかの大幅な速度改善を含む新しい Maven 2.1 M1 を確認することもできます。

これらのいずれも役に立たない場合は、プロジェクト構成 (モジュール構造とプラグイン)、コマンド ライン パラメーター、およびハードウェア構成 (メモリとディスク) に関する詳細を投稿してください。-X を指定して Maven を実行すると、どこで時間がかかっているかがわかります。

于 2008-10-02T15:25:01.173 に答える
1

ローカルにインストールされた Nexus を使用します。

于 2009-02-19T19:11:46.253 に答える
0

最初に、このようなものを使用してビルド時間をより細かく分析し、最も時間がかかっている候補を特定する必要があります。

テストはテストごとに H2 データベースをスピンアップしていますか? 外部jarファイルのダウンロードに時間がかかっていませんか? これにより、調査の焦点をどこに置くかが決まります。go-fast フラグを適用するだけでは、デフォルトで既に含まれているため、通常は機能しません。また、スキップ フラグでテストを犠牲にしたくありません。

于 2016-05-09T08:49:22.090 に答える