0

我正在尝试使用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 生命周期映射元数据的错误。(窗口 --> 首选项 --> Maven --> 生命周期映射),如本m2eclipse 文档中所述

所以我有以下生命周期映射元数据.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没有给出这个插件的 m2e 文档中描述的错误,这是整个生命周期映射业务旨在解决的条件,也许这个生命周期映射业务适用于不同阶段手术。

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

4

0 回答 0