我想将附加文本写入Java资源文件(将两个.java文件合并为一个)。我写了一个python脚本来做到这一点。
我还想使用Maven自动化步骤(组合文件,编译,打包)。我是Maven的新手,我发现exec-maven-plugin
可以运行python脚本。
我尝试设置<phase>process-resources</phase>
以尝试在编译之前启动它,但Eclipse抱怨Plugin execution not covered by lifecycle configuration: org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
(execution: default, phase: process-resources)
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>process-resources</phase> <!-- Eclipse complains an error here -->
<goals>
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>python</executable>
<workingDirectory>src/main/python</workingDirectory>
<arguments>
<argument>combine.py</argument>
</arguments>
</configuration>
</plugin>
任何人都知道我怎么能实现这个目的?非常感谢。
答案 0 :(得分:3)
这是Eclipse M2e插件技巧。 Sachin Shekhar R
是对的,但对于像我这样的新手来说,答案还不够明确。我理解了这一点:
请参阅http://wiki.eclipse.org/M2E_plugin_execution_not_covered 在Eclipse M2e中有两种方法可以做到这一点。
使用Sachin Shekhar R
的答案中列出的代码。请注意,这段代码必须位于<pluginManagement><plugins>
下,而<pluginManagement>
必须位于<plugins>
内。示例代码:
<build>
<plugins>
<plugin>
<!-- plugins here-->
</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.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<versionRange>[1.2.1,)</versionRange>
<goals>
<goal>exec</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
这只适用于项目。
使用Eclipse M2e插件的“快速修复”功能。它存在于1.0版之后。在Problems
标签中找到错误。右键单击它,选择“快速修复”。弹出一个“快速修复”窗口,选择第二个选项Mark goal exec as ignored in Eclipse build in Eclipse references (experimental)
此方法会将<lifecycleMappingMetadata>
之间的代码写入生命周期映射到workspace/.metadata/.plugins/org.eclipse.m2e.core/lifecycle-mapping-metadata.xml
的工作空间配置文件中
这适用于整个工作区
答案 1 :(得分:1)
我们在
下有类似的代码生成<execution>
<phase>generate-sources</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
在插件下我们还有其他条目可以避免eclipse抱怨
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.codehaus.mojo
</groupId>
<artifactId>
exec-maven-plugin
</artifactId>
<versionRange>
[1.2.1,)
</versionRange>
<goals>
<goal>java</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution></pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
生命周期映射的GWT源代码中的实例 - http://code.google.com/searchframe#T04cSGC7sWI/trunk/samples/expenses/pom.xml
参考说明 - stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin