2017-09-02 115 views
1

我剛開始使用maven。所以請忽略,如果這太基本無法問。maven-post-package階段未運行

這是我的pom.xml

<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> 

以上運行,併成功地在目標/班創建戰爭文件,但post-package階段沒有運行。什麼是問題?這是因爲我沒有定義package階段?如果是這樣,那麼爲什麼包裝完成了?

+0

你執行什麼命令? – nullpointer

+0

首先你在你的pom文件中設置看起來是錯誤的以產生一個簡單的WAR文件?此外,「後包」階段根本不存在,請查看[生命週期參考](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

這是因爲不存在這樣的相作爲post-package Maven中:

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> 
相關問題