【发布时间】:2016-09-16 08:00:45
【问题描述】:
我有一个 POM 文件(由 Eclipse 执行),我想在 generate-sources 阶段执行一个 ANT 任务。基于m2e documentation,在How to solve "Plugin execution not covered by lifecycle configuration" for Spring Data Maven Builds、Maven: execute antrun task during package和Where should be placed maven-compiler-plugin declaration: in <plugins> or <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 的 Eclipse 插件(m2e)允许 maven-antrun-plugin(1.8 版或更高版本)在generate-sources 期间执行。接下来,在generate-sources阶段和第一个插件执行后,调用ant插件运行回显我的消息的任务。
但是,没有显示消息。当我只执行generate-sources 目标和执行install 目标时都不会。
如果我关注this sugestion here,并在<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,阶段:generate-sources )。 Here 显示了一个示例,其中没有特定的 <pluginManagement> 用于 ant 插件。但我也没有成功。
那么这里缺少什么?
谢谢,
拉斐尔·阿方索
【问题讨论】:
-
将m2e中的配置从
generate-sources改为run... -
抱歉,没有成功。 :(