17

Mavenライフサイクルの特定のフェーズをサブフェーズに分割したいと思います。アリの依存関係のように、あるサブフェーズから別のサブフェーズへの実行フローを制御したいと思います。

たとえば、プロジェクトがwarファイルにパッケージ化された後、パッケージ化段階でプロジェクトをインストーラーにパッケージ化するためにNSISプラグインを使用したいと思います。私はパッケージ段階でそれをすべてやりたいと思います。

それは可能ですか?

4

2 に答える 2

13

同じフェーズにバインドされたプラグインは、POM にリストされているのと同じ順序で実行する必要があります。特定の状況下 (たとえば、antrun プラグインのように同じプラグインをフェーズに 2 回バインドした場合) では、これは発生しない可能性がありますが、これはバグです ( MNG-2258および関連する問題MNG-3719を参照)。

于 2010-03-24T17:24:07.800 に答える
6

私も同じ問題を抱えていました。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を使用します。私はそれを使ったことがありませんが、それはあなたのニーズに関連しているようです。

これがあなたに新しいアイデアを与えることを願っています。

ロネン

于 2010-03-25T09:10:04.990 に答える