Eclipse中生命周期映射的插件执行排除不适用于rpm-maven-plugin

时间:2015-11-17 15:48:14

标签: eclipse maven m2e rpm-maven-plugin

我正在尝试使用rpm-maven-plugin来构建rpm。众所周知,此插件仅适用于具有rpm命令(RedHat,CentOS)的操作系统。它在Windows下不起作用(可能除了Cygwin,但这对我来说不是一个选项)。然而,我使用Eclipse在Windows上编码。这没关系,我可以简单地将更改提交到远程Atlassian Stash git存储库并将其提取到RedHat服务器以构建rpm。

但是我仍然希望能够在Eclipse中构建应用程序,只是跳过构建的RPM部分。

我的pom.xml有

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rpm-maven-plugin</artifactId>
        <version>2.1.4</version>
        <executions>
            <execution>
                <id>generate-rpm</id>
                <goals>
                    <goal>rpm</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
           ...
        </configuration>
    </plugin>

我想我可能会在更改Eclipse生命周期映射元数据时避免错误。 (窗口 - &gt;首选项 - &gt; Maven - &gt;生命周期映射),如此m2eclipse documentation

中所述

所以我有以下lifecycle-mapping-metadata.xml(是的,我确实记得使用新设置更新Eclipse):

<?xml version="1.0" encoding="UTF-8"?>
<lifecycleMappingMetadata>
  <pluginExecutions>
    <pluginExecution>
        <pluginExecutionFilter>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>rpm-maven-plugin</artifactId>
            <versionRange>[2.1.4,)</versionRange>
            <goals>
                <goal>rpm</goal>
                <goal>attached-rpm</goal>
            </goals>
        </pluginExecutionFilter>
        <action>
            <ignore />
        </action>
    </pluginExecution>
  </pluginExecutions>
</lifecycleMappingMetadata>

然而我的构建在Eclipse下失败了。生命周期映射中的插件排除不会发生:

[ERROR] Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.1.4:rpm (generate-rpm) on project icmloadtester: Unable to query for default vendor from RPM: Error while executing process. Cannot run program "rpm": CreateProcess error=2, The system cannot find the file specified -> [Help 1]

为什么这种机制不起作用?

一个可能的原因是Eclipse NOT 给我这个插件描述in the m2e document的错误,这是整个生命周期映射业务旨在解决的条件,也许此生命周期映射业务适用于不同的操作阶段。

那么我如何配置我的项目以便rpm插件只在rpm可执行文件存在的系统上执行?

0 个答案:

没有答案