Mavenライフサイクルの特定のフェーズをサブフェーズに分割したいと思います。アリの依存関係のように、あるサブフェーズから別のサブフェーズへの実行フローを制御したいと思います。
たとえば、プロジェクトがwarファイルにパッケージ化された後、パッケージ化段階でプロジェクトをインストーラーにパッケージ化するためにNSISプラグインを使用したいと思います。私はパッケージ段階でそれをすべてやりたいと思います。
それは可能ですか?
私も同じ問題を抱えていました。Maven2ビルドで順序付けられたタスクを実行する方法を参照してください。何らかの理由で、フェーズにバインドされたさまざまな目標がハッシュマップまたはその他の順序付けられていない構造に格納され、実行順序がランダムになります。私の解決策は、タスクをさまざまなフェーズに分散させることでしたが、あなたのケースではそれほど意味があるとは思いません(nsisパッケージングは統合前のテストではありません)。次のいずれかを実行できます。
1)運試しをして、Mavenが正しい順序を選択するかどうかを確認します(おそらくすでに試しています)
2)スタンドアロンプラグインを使用する-ライフサイクル外で目標を実行します。mvn package org.codehaus.mojo:nsis-maven-plugin:1.0:compileのようなものです。
3)それらをモジュールに分割します。2つのサブモジュールを含む親pomを用意します。1つはwarプロジェクト用で、もう1つはnsisプロジェクト用です。
4)タイプを変更してカスタムライフサイクルを使用します。この場合、「exe」を使用できます。これは、カスタムプラグイン拡張機能を使用して行われます(拡張機能の使用ガイド)
5)jetspeed-mvn-maven-pluginを使用します。私はそれを使ったことがありませんが、それはあなたのニーズに関連しているようです。
これがあなたに新しいアイデアを与えることを願っています。
ロネン