防止maven bundle在eclipse 4.2中运行没有保存

时间:2013-05-29 09:07:30

标签: java eclipse maven m2e maven-bundle-plugin

在我的eclipse工作区中,将文件保存在java编辑器中会使m2e在项目上运行defaultGoal(install),这涉及重写MANIFEST.MF文件。因为我使用的是另一个没有m2e连接器的插件(maven-scr-plugin),这使我的清单文件无用。

我想做的是阻止maven-bundle-plugin在保存时执行,到目前为止我已经提出了两种可能的解决方案:

您可以编辑eclipse生命周期映射,但由于某些原因(我认为它应该),这不会起作用:

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
    <pluginExecutions>
        <pluginExecution>
            <pluginExecutionFilter>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <versionRange>[0.0,)</versionRange>
                <goals>
                    <goal>instructions</goal>
                    <goal>bundle</goal>
                    <goal>manifest</goal>
                </goals>
            </pluginExecutionFilter>
            <action>
                <ignore />
            </action>
        </pluginExecution>
    </pluginExecutions>
</lifecycleMappingMetadata>

或者,将我的pom.xml defaultGoal中的<build>更改为compile之类的内容也意味着没有达到捆绑插件启动的程度,但我确实由于日食的特殊性,讨厌改变我的pom。

有没有办法为m2e插件定义defaultGoal?你们有没有其他方法呢?谢谢!

2 个答案:

答案 0 :(得分:0)

您可以按照http://maven.apache.org/shared/maven-archiver/examples/manifestFile.html

中的说明使用自己的清单文件

答案 1 :(得分:0)

到目前为止,我找到的唯一解决方案(但实际上有效)是在我的父pom中将<defaultGoal>设置为compile。它解决了这个问题,但正如问题所述,它远非最佳,因为它将eclipse的东西传播到IDE独立的构建中。