Maven(m2e)不执行ant任务
我有一个POM文件(由Eclipse执行),我想在generate-sources
阶段执行ANT任务。 基于m2e文档,在如何解决Spring Data Maven构建中的“生命周期配置未涉及的插件执行”中,Maven:在包中执行antrun任务,并在哪里放置maven-compiler-plugin声明:在<plugins>或<pluginManagement > ?,我以这种方式写下了我的POM文件:
<?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(m2e)请求Eclipse插件,以允许在generate-sources
期间执行maven-antrun-plugin(1.8或更高版本)。 接下来,在generate-sources
阶段和执行第一个插件之后,调用ant插件来运行回应我的消息的任务。
但是,消息并未显示出来。 当我执行generate-sources
目标时,或执行install
目标时,都不会。
我如果在这里遵循这个消息,并且在<execution>
添加<phase>
元素,就像这里:
<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错误消息:插件执行不包含在生命周期配置中:org.apache.maven.plugins:maven-antrun-plugin:1.8:run(执行:ant-test,phase:generate-sources)。 这里显示了一个没有针对ant插件的特定<pluginManagement>
的例子。 但我也没有成功。
那么这里缺少什么?
谢谢,
拉斐尔阿丰索
实际上,我发现错误消息插件执行没有被生命周期配置所覆盖:org.apache.maven.plugins:maven-antrun-plugin:1.8:run(execution:ant-test,phase:generate-sources)对于Maven执行。 显示的信息没有问题。 说实话,我不得不改变task
的target
,但消息继续显示。 也许这只是一种类似m2e的错误,唯一的影响就是让我们恼火。