2011-01-25 12 views
0

ビルド/デプロイメントフェーズでmaven-antrun-pluginを使用して、同じ一連のantタスクを実行する必要のあるmavenプロジェクトがあります。mavenプラグインに一連のantタスクをラップしますか?

親プロジェクトでmaven-antrun-pluginの実装を上書きしたくないので、このプラグインを使用する他のすべてのプロジェクトはこれらの手順を継承します。

私は、特別な一連のantタスクを持つmaven-antrun-pluginラッパーとして機能する独自のmavenプラグインを作成しています。しかし、現在、私はこれを成功させることができませんでした。

私が見てきました:

http://maven.apache.org/guides/plugin/guide-ant-plugin-development.html

が、ここで説明したのと同じ問題に遭遇:

http://www.mail-archive.com/[email protected]/msg92676.html

(上記の記事で示唆したバージョンを使用しても問題が解決しません)

および http://www.mail-archive.com/[email protected]/msg115264.html それだけではMaven2をで動作するチュートリアルのようになります。私もここから何かを盗むためにしようとした

http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

まだありません作業プラグイン。

私がラップするプラグインは、次のようになります。

 <plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>test</id> 
      <phase>deploy</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <tasks> 
       <!-- execute task A,B and D --> 
       </tasks> 
      </configuration> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
      <groupId>org.apache.ant</groupId> 
      <artifactId>ant-jsch</artifactId> 
      <version>1.8.1</version> 
      </dependency> 
     </dependencies> 
     </plugin> 
    </plugins> 
    </build> 

それはその後、これまで必要とされるプラグインを使用してプラグイン別にタスクA、BおよびCのシーケンスを出すことは可能ですか?

私も親にantrunプラグインとfalseに継承を設定する子供たちのいくつかのために無効にそれを移動しようとしています:

http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_inherited_Tag_In_Build_Plugins

が、親に定義されたタスクがまだ実行されそう継承をfalseに設定しても動作しないようです。

答えて

0

親に<plugin>を定義し、子がそれを適切に使用できるようにする場合は、<pluginManagement>セクション内で定義できます。これにより、親はプラグインを実行しません。このプラグインをpomに定義している子どもに対してのみ実行されます。

antタスクのシーケンシングに関しては、taskをantスクリプトに作成する方が簡単です(タスクA、B、Cを順番に呼び出し、デフォルトのmaven-antrun-pluginの機能を引き続き使用します)。

関連する問題