【问题标题】:Mavent AntRun Not Executing TasksMavent AntRun 不执行任务
【发布时间】:2013-01-25 17:10:34
【问题描述】:

按照使用页​​面 (http://maven.apache.org/plugins/maven-antrun-plugin/usage.html) 上的说明和我一直在尝试运行 Ant 任务的其他 Stackoverflow 问题我的 Maven 构建。我已经将我要做的事情简化为“你好,Maven”的简单回声,但我什么也没得到。

我正在执行 Maven:

mvn package

我希望这个特定任务在打包之前运行(“准备包”),所以我先尝试了那个阶段,但是当它不起作用时,我尝试让我的阶段只是“打包”。

这是我尝试过的一种插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>id.package.ant</id>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <echo message="Hello, maven"/>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

这是我尝试过的另一个:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>id.package.ant</id>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <tasks>
                    <echo message="Hello, maven"/>
                </tasks>
            </configuration>
        </execution>
    </executions>
</plugin>

我也尝试过没有 的这些。

我没有得到任何错误,根本没有输出。即使我执行 Maven -debug,“echo”这个词在输出中也没有出现,“antrun”这个词在输出中没有出现,“hello”这个词在输出中也没有出现。

好像连插件配置都不存在。

【问题讨论】:

  • 你在 pom.xml 中哪里声明了这个:在 &lt;build&gt; -- &lt;plugins&gt;&lt;build&gt; -- &lt;pluginManagement&gt; 内?
  • pluginManagement-plugins-plugin
  • 另外,我使用的是 Maven 3.0.3。
  • 让我澄清一下,以防我被误解了。 &lt;build&gt; -- &lt;pluginManagement&gt; -- &lt;plugins&gt; -- &lt;plugin&gt;.
  • 查看一个非常相似的案例,其中包含我的answer。这是你得到的行为的explanation

标签: maven maven-antrun-plugin


【解决方案1】:

Andrew 在他的 cmets 中有正确的答案。当我将我的 maven-antrun-plugin AS-IS 以上(使用&lt;target&gt; 而不是&lt;tasks&gt;)移出&lt;pluginManagement&gt; 并进入独立的&lt;plugins&gt; 时,我的Ant 任务开始执行。

令人惊讶的是,Google 和 Stackoverflow 的搜索次数之前没有返回其他问题,但现在我对 pluginManagement 有了更好的理解。谢谢,安德鲁!

【讨论】:

  • 自我注意...我来到这里试图找出为什么没有任务从 maven-antrun 运行。提到目标而不是任务会促使回忆。默认版本是 antrun 1.3,不支持目标。
  • 如果插件已经在插件管理之外并且仍然没有运行怎么办?
  • @dev4life 这是由于默认版本“1.3”,请参阅下面的 Alex Georgescu 回答。
【解决方案2】:

将 ant 从 1.7 更改为 1.8 解决了我的问题。

【讨论】:

    【解决方案3】:

    我也遇到过类似的问题,而且只在我添加了 1.8 版标签后才有效。否则它不会工作。这可能会有所帮助。

    【讨论】:

    • 虽然“可能是正确的”作为答案,但它更适合作为评论而不是完整的答案。如果您希望您的回答获得支持,请尝试更加健谈
    【解决方案4】:

    我遇到了类似的问题。就我而言,这是因为我没有为执行设置 &lt;id&gt;...&lt;/id&gt; 标记。以下是有效的 XML:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <executions>
            <execution>
                <id>test</id> <!-- has to be set -->
                <phase>validate</phase>
                <goals>
                    <goal>run</goal>
                </goals>
                <configuration>
                    <target name="test">
                        <echo message="testing 1 2 3"/>
                    </target>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    【讨论】:

      猜你喜欢
      • 2011-09-10
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2022-02-03
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 1970-01-01
      相关资源
      最近更新 更多