7つのモジュールがある大規模なプロジェクトでフルビルドを実行していて、6番目のモジュールで、テストが失敗したためにビルドが失敗したとします。失敗した時点からビルドを開始する方法はありますか?
回答:
-rf
またはを使用して、6番目のモジュールからビルドを再開できます--resume-from
。
-rf, --resume-from
指定されたプロジェクトからリアクターを再開します
詳細については、高度なリアクタオプションを参照してください。
subproject/subsubproject
はパラメータとして使用するだけです
maven -rf <module name> clean install
mvn -rf :moduleName install
。(コロンが必要な理由は正確にはわかりませんが、少なくとも私の設定ではそうです。)
install
目標が含まれている場合にのみ機能するように見えます。これは、ビルドを再開すると、ローカルのMavenリポジトリから既にビルドされたアーティファクトを取得して依存関係を解決できるためです。install
ローカルリポジトリがスナップショットで乱雑になり、予想よりも古いスナップショットに依存する可能性があるため、ビルドを実行するのは悪い習慣だと思います。使用することはできpackage
ないinstall
、使用しないビルドのように見え-rf
ます。ビルド全体を実行する必要があります。
-rf
コマンドを使用して、任意のモジュールからビルドを再開できます。たとえば、myproject-proxyでビルドが失敗した場合は、次のコマンドを使用できます。
mvn -rf myproject-proxy clean install
Mavenの概要を見ると、実行されたモジュールとMavenが停止している場所がわかります。次に、これを試してください:
mvn clean install-Dmaven.test.skip=true -rf :yourModule
構文:mvn -rf modulenamemavengoalまたはmvn--resume-from modulename mavengoal
例:mvn -rf admin-module cleaninstallまたはmvn--resume-from admin-module clean install
-rf
の略ではありません--remove-from
。それは略です--resume-from