当前位置: 首页 > 知识库问答 >
问题:

Maven(m2e)没有执行ant任务

狄元魁
2023-03-14

我有一个POM文件(由Eclipse执行),我想在生成源代码阶段执行一个ANT任务。基于m2e文档,在如何解决Spring Data Maven Builds的“生命周期配置未涵盖的插件执行”中,Maven:在打包期间执行antrun任务,以及Maven编译器插件声明的位置:in

<?xml version="1.0" encoding="UTF-8"?>
    <project>

    ...

    <build>
        <pluginManagement>
            <plugins>
                ...
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-antrun-plugin</artifactId>
                                        <versionRange>[1.8,)</versionRange>
                                        <goals>
                                            <goal>generate-sources</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute/>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>

            </plugins>
        </pluginManagement>

        <plugins>

            <plugin>
                <!-- Plugin 1 -->
            </plugin>

            <plugin>
                <!-- Plugin to be executed during generate-sources phase. -->
            </plugin>

            <plugin>
                <!-- Should be in the generate-sources phase after the plugin above. -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <id>ant-test</id>
                        <configuration>

                            <task>
                                <echo message="ANT TEST" />
                            </task>

                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

    ...

</project>

我从阅读中了解到,我要求告诉Maven以下内容:首先要求Maven的Eclipse插件(m2e)允许maven-antrun-plugin(1.8或更高版本)在生成源期间执行。接下来,在生成源代码阶段,在执行第一个插件之后,调用ant插件来运行响应我消息的任务。

然而,消息没有显示出来。无论是仅执行生成源代码目标,还是执行安装目标。

如果我在这里遵循这个建议,并添加

<executions>
    <execution>
        <id>ant-test</id>
        *<phase>generate-sources</phase>*
        <configuration>

            <task>
                <echo message="ANT TEST" />
            </task>

        </configuration>
        <goals>
            <goal>run</goal>
        </goals>
    </execution>
</executions>

我有一条Eclipse错误消息:lifecycle configuration:org未涵盖插件执行。阿帕奇。专家插件:maven antrun插件:1.8:run(执行:ant测试,阶段:生成源代码)。这里显示了一个没有特定

那么这里缺少什么?

谢谢

拉斐尔·阿方索


共有2个答案

孙凌
2023-03-14

事实上,我做了下面的结构,它起作用了:

<build>
        <plugins>
            <plugin>
                ....
            </plugin>
            <plugin>
                ...
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>
                                            org.apache.maven.plugins
                                        </groupId>
                                        <artifactId>
                                            maven-antrun-plugin
                                        </artifactId>
                                        <versionRange>
                                            [1.8,)
                                        </versionRange>
                                        <goals>
                                            <goal>run</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore></ignore>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
</build>
花稳
2023-03-14

实际上,我发现生命周期配置中没有涵盖的错误消息插件执行:org.apache.maven.plugins: maven-antrun-plugin: 1.8: run(执行: ant-test,阶段:侨源)在Maven执行中没有影响。消息显示没有问题。说实话,我不得不将任务更改为目标,但消息继续显示。也许这只是一种m2e的错误,唯一的效果是让我们恼火。

 类似资料:
  • 在我的maven构建中,我必须按照下面提到的特定顺序执行以下步骤: exec-maven-plugin maven-antrun-plugin exec-maven-plugin maven-antrun-plugin maven-remote-resources-plugin,jaxb2-maven-plugin maven-javadoc-plugin exec-maven-plugin 在p

  • 由于我将 Java 从 JDK7u55 更新到 JDK7u60,因此我在运行构建时遇到了一个问题。我在 Windows Server 2003 Standard Edition 上使用 Ant 1.6.5。下面是导致问题的 Ant 任务。 一旦两个jar被重命名,我就开始使用< code >运行所有的测试 现在由于我将Java升级到JDK7u60,而不是等待所有测试完成,最后两个

  • 问题内容: 有没有办法在Go中执行重复的后台任务?我在想类似Java 的东西。我知道我可以使用goroutine和来做到这一点,但是我想要一些容易停止的东西。 这就是我得到的,但是对我来说看起来很丑。有没有更清洁/更好的方法? 问题答案: 该功能使通道发送定期消息,并提供了一种停止该消息的方法。使用它像这样(未经测试): 您可以通过关闭频道来停止工作人员:。

  • 我已经导入了JUNIT 4.12和Hamcrest 1.3库以及测试文件夹设置。指向正确测试包文件夹的源代码。我将使用Shift F6为每个Java测试文件运行测试,它将执行该Java文件中的所有测试。重新启动计算机后,我按照同样的程序运行测试,结果“没有执行任何测试”。原因和解决方案可能是什么。 没有任何修改的同一个项目可以在另一台计算机上正常工作。试图重新安装Netbeans 8.2,但它没有

  • Jenkins不熟悉,所以我有一个java web项目(maven)和一个单元测试文件。测试文件结构:src/test/Java/preprocessortest . Java 该测试在intellij中成功执行。但是Jenkins并不认为这个测试文件是成功的。 它显示“没有要运行的测试” Jenkins控制台日志 pom.xml (编辑)当我使用cmd作为“mvn test”在pc中进行mave

  • 我正在尝试创建maven项目的可执行jar文件。 下面是我的pom.xml 下面是最后一个命令的控制台输出。