2011-06-07 113 views
10

我正在使用Maven AntRun插件1.6,並且從他們的示例中,我無法編碼以下要執行的ant任務。Maven Antrun不執行任務

URL示例:http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html

我剛收到以下消息時,我執行MVN antrun:運行。 沒有定義螞蟻目標 - 跳過

我在做什麼錯?

這裏是我的POM:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.6</version> 
      <executions> 
       <execution> 
        <id>compile</id> 
        <phase>compile</phase> 
        <configuration> 
         <target> 
          <property name="compile_classpath" refid="maven.compile.classpath" /> 
          <property name="runtime_classpath" refid="maven.runtime.classpath" /> 
          <property name="test_classpath" refid="maven.test.classpath" /> 
          <property name="plugin_classpath" refid="maven.plugin.classpath" /> 

          <echo message="compile classpath: ${compile_classpath}" /> 
          <echo message="runtime classpath: ${runtime_classpath}" /> 
          <echo message="test classpath: ${test_classpath}" /> 
          <echo message="plugin classpath: ${plugin_classpath}" /> 
         </target> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

回答

7

既然你已經在你的pom.xml配置行家antrun插件,你只需要調用配置的插件生命週期的目標。在這種情況下

mvn compile

這將做要緊。

+0

謝謝!這是關於如何打電話給pom的誤解。 – 2011-06-08 02:43:07

21

試試這個

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.7</version> 
      <executions> 
       <execution> 
        <id>default-cli</id> 
        <configuration> 
         <target> 
          <property name="compile_classpath" refid="maven.compile.classpath" /> 
          <property name="runtime_classpath" refid="maven.runtime.classpath" /> 
          <property name="test_classpath" refid="maven.test.classpath" /> 
          <property name="plugin_classpath" refid="maven.plugin.classpath" /> 

          <echo message="compile classpath: ${compile_classpath}" /> 
          <echo message="runtime classpath: ${runtime_classpath}" /> 
          <echo message="test classpath: ${test_classpath}" /> 
          <echo message="plugin classpath: ${plugin_classpath}" /> 
         </target> 
        </configuration> 
        <goals> 
         <goal>run</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

注意ID

<id>default-cli</id> 

和運行命令

mvn antrun:run 

之所以這樣做的方法: 如果你不真的想「編譯「,運行」mvn compile「來執行其他操作可能會產生反作用。

+0

幾小時後的很多谷歌,這篇文章保存我的一天。謝謝。有人知道爲什麼使用antrun:run @ custom_id不起作用? '[錯誤]無法找到目標'run @ copy'' < - 在我的情況下,custom_id = copy – Vielinko 2016-03-08 22:34:07

+0

@功能在Maven 3.3.1中實現。您可能正在運行較舊的版本。請參閱https://issues.apache.org/jira/browse/MNG-5768 – TikiTavi 2017-10-19 16:58:53