maven antrun 插件

Posted

技术标签:

【中文标题】maven antrun 插件【英文标题】:maven antrun plugin 【发布时间】:2011-04-16 23:44:38 【问题描述】:

我的 pom 中有以下内容:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-ant-plugin</artifactId>
    <version>2.3</version>
    <configuration>
       <target>
          <echo
            message="hello ant, from Maven!" />
          <echo>Maybe this will work?</echo>
       </target>
    </configuration>
</plugin>

然而,当我运行“mvn antrun:run”时,我得到了这个:

[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'antrun'.
[INFO] ------------------------------------------------------------------------
[INFO] Building myProject
[INFO]    task-segment: [antrun:run]
[INFO] ------------------------------------------------------------------------
[INFO] [antrun:run execution: default-cli]
[INFO] Executing tasks
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Fri Sep 24 13:33:14 PDT 2010
[INFO] Final Memory: 16M/28M
[INFO] ------------------------------------------------------------------------

为什么回声没有出现?

TIA

【问题讨论】:

重申我错过的一些事情 - 确保并使用插件的 1.5+ 版本。 【参考方案1】:

因为如果你想执行 Ant 任务,你应该使用Maven AntRun Plugin,而不是Maven Ant Plugin(用于从 POM 为 Ant 1.6.2 或更高版本生成构建文件)。修改你的插件配置如下:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.5</version>
    <configuration>
      <target>
        <echo message="hello ant, from Maven!"/>
        <echo>Maybe this will work?</echo>
      </target>
    </configuration>
  </plugin>

并且调用antrun:run 将起作用:

$ mvn antrun:运行 [INFO] 正在扫描项目... [信息] [信息] --------------------------------------------- ------------------------- [INFO] 建筑 Q3790798 1.0-SNAPSHOT [信息] --------------------------------------------- ------------------------- [信息] [信息] --- maven-antrun-plugin:1.5:run (default-cli) @ Q3790798 --- [INFO] 执行任务 主要的: [echo] 你好蚂蚁,来自 Maven! [回声] 也许这会奏效? [INFO] 已执行的任务 [信息] --------------------------------------------- ------------------------- [信息] 构建成功 [信息] --------------------------------------------- ------------------------- ...

【讨论】:

哦,伙计,多么可笑的简单却令人恼火的错误!非常感谢,你就像 Java 的 Jon Skeet :D @javamonkey79 不客气。两个插件之间发生混淆,引起我注意的是版本之间的不匹配。【参考方案2】:

确保maven-antrun-plugin 使用的是最新版本。

我的项目中一个不相关的 BOM 将其锁定为 1.3,而 &lt;echo&gt; 被忽略。删除 BOM 并为 antrun 指定 1.7 后,回声起作用了。

【讨论】:

以上是关于maven antrun 插件的主要内容,如果未能解决你的问题,请参考以下文章

用AntRun插件测试Maven的生命周期

maven antrun 插件

从多个配置文件组合后,Maven antrun 插件缺少目标任务

是否可以在另一个插件的两次执行之间运行一个插件?

maven中的多个antrun任务

有用的maven插件