失敗したポイントからMavenビルドを開始できますか?


89

7つのモジュールがある大規模なプロジェクトでフルビルドを実行していて、6番目のモジュールで、テストが失敗したためにビルドが失敗したとします。失敗した時点からビルドを開始する方法はありますか?

回答:


134

-rfまたはを使用して、6番目のモジュールからビルドを再開できます--resume-from

-rf, --resume-from
          指定されたプロジェクトからリアクターを再開します

詳細については、高度なリアクタオプションを参照してください。


this.iに感謝します
Shekhar

1
これは良いことです。サブサブプロジェクトsubproject/subsubprojectはパラメータとして使用するだけです
akostadinov 2014年

13
例:maven -rf <module name> clean install
ゾルタン

9
これは、モジュール名の前にコロンを付けた場合にのみ機能しましたmvn -rf :moduleName install。(コロンが必要な理由は正確にはわかりませんが、少なくとも私の設定ではそうです。)
Steve Chambers

3
これは、最初のビルドにinstall目標が含まれている場合にのみ機能するように見えます。これは、ビルドを再開すると、ローカルのMavenリポジトリから既にビルドされたアーティファクトを取得して依存関係を解決できるためです。installローカルリポジトリがスナップショットで乱雑になり、予想よりも古いスナップショットに依存する可能性があるため、ビルドを実行するのは悪い習慣だと思います。使用することはできpackageないinstall、使用しないビルドのように見え-rfます。ビルド全体を実行する必要があります。
フラン2016


9

-rfコマンドを使用して、任意のモジュールからビルドを再開できます。たとえば、myproject-proxyでビルドが失敗した場合は、次のコマンドを使用できます。

mvn -rf myproject-proxy clean install

これを機能させるには、コロンを入れる必要がありました。例:-rf:yourModule他の回答を参照してください。
Gapmeister 6619年

8

Mavenの概要を見ると、実行されたモジュールとMavenが停止している場所がわかります。次に、これを試してください:

mvn clean install-Dmaven.test.skip=true -rf :yourModule

-1

構文: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
ギリ

-2

モジュール6のビルドを個別に実行して、それでも失敗するかどうかを確認できますが、「大きな」ビルドを実行する場合は、最初からすべてのモジュールをビルドする必要があります。

編集:もちろん、ビルドの一部としてクリーンに実行しない限り、モジュール1〜5のコードはすでにコンパイルされているため、後続のビルドは高速になります。


はい.. ..私はこれを知っている..しかし、私はそれが失敗した時点からのビルドを開始するための方法を探していた
シェカール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.