2017-09-02 9 views
1

私はmavenを使い始めました。だから、これがあまりにも基本的なものであるかどうかは無視してください。maven - パッケージ後フェーズが実行されていません

これは

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.abc</groupId> 
    <artifactId>debug</artifactId> 
    <packaging>war</packaging> 
    <name>Debug</name> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.1</version> 
       <configuration> 
        <warSourceExcludes>abc/**</warSourceExcludes> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.1</version> 
       <executions> 
        <execution> 
         <id>default</id> 
         <phase>generate-sources</phase> 
         <configuration> 
          <tasks> 
           <!-- Some work --> 
          </tasks> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
        <execution> 
         <id>post.package</id> 
         <phase>post-package</phase> 
         <configuration> 
          <tasks> 
           <echo>This is not running</echo> 
          </tasks> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

上記正常に動作し、warファイルの私のpom.xmlであるターゲット/クラスで作成されますが、post-package相が実行されていません。どうした?これは私がpackage段階を定義していないためですか?もしそうなら、なぜパッケージングが完了していますか? Mavenのにpost-packageとしてそのような相が存在しないためである

+0

あなたはどのようなコマンドを実行しているを選択することができますか? – nullpointer

+0

まず、単純なWARファイルを生成するために、pomファイルのセットアップが間違っていますか?さらに、「パッケージ後」フェーズは存在しません(https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference)。私はあなたがなぜ生成プラグインの段階でmaven-antrun-pluginが必要なのか分かりません。生成されたWARを何とか実行しますか?このためにはMavenプラグインが存在するTomcatプラグインまたはJettyを使うべきです...なぜパッケージングの除外をしていますか?なぜ古いバージョンのMaven-War-Pluginを使うのでしょうか? – khmarbaise

答えて

2

HereはMavenのライフサイクルとそのプロセスへの参照です。

あなたはpackage相後に特定のタスクを実行したい場合は、preferrable

<execution> 
    <id>post-package</id> 
    <phase>pre-integration-test</phase> 
    <configuration> 
     <tasks> 
      <echo>This would run during pre-integration-test phase</echo> 
     </tasks> 
    </configuration> 
    <goals> 
     <goal>run</goal> 
    </goals> 
</execution> 
関連する問題