10

创建 Maven 项目的 RPM 时出现以下错误。

我能够成功打包 Jar,但 RPM 创建失败。

注意:我在 Windows 7 上尝试

[WARNING] operable program or batch file.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 42.696 s
[INFO] Finished at: 2014-10-08T15:06:40+05:30
[INFO] Final Memory: 23M/228M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.0.1:rpm (default-cli) on project inv_project: RPM query for default vendor returned: '1' executing 'cmd.exe /X /C "rpm -E %{_host_vendor}"' -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.0.1:rpm (default-cli) on project inv_project: RPM query for default vendor returned: '1' executing 'cmd.exe /X /C "rpm -E %{_host_vendor}"'
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:120)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:157)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: RPM query for default vendor returned: '1' executing 'cmd.exe /X /C "rpm -E %{_host_vendor}"'
        at org.codehaus.mojo.rpm.RPMHelper.getHostVendor(RPMHelper.java:76)
        at org.codehaus.mojo.rpm.AbstractRPMMojo.checkParams(AbstractRPMMojo.java:892)
        at org.codehaus.mojo.rpm.AbstractRPMMojo.execute(AbstractRPMMojo.java:714)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
        ... 19 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

下面是我正在使用的 pom.xml

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rpm-maven-plugin</artifactId>
        <version>2.0.1</version>
        <executions>
            <execution>
                <phase>install</phase>
                <goals><goal>rpm</goal></goals>
            </execution>
        </executions>
        <configuration>
            <group>Applications/Programming</group>
            <filemode>755</filemode>
            <copyright>LGPL</copyright>
            <mappings>
                <mapping>
                    <directory>target/</directory>
                    <sources>
                        <source><location>lib/</location></source>
                    </sources>
                </mapping>
            </mappings>
        </configuration>
      </plugin>

让我知道这里缺少什么?

4

4 回答 4

12

rpm-maven-plugin 只调用操作系统rpm命令,因此您需要在这些命令可用的 RedHat 或 CentOS 上运行它。这个插件不会在其他操作系统上做任何事情。

于 2014-10-09T09:44:23.113 回答
5

你需要有 rpm 命令。不同的操作系统可能有不同的安装方式。Cygwin 是一种在 Windows 中使用它的方法。我在 Ubuntu 中遇到了同样的问题,并通过以下方式解决了它:

sudo apt install rpm

因此,根据操作系统/发行版的不同,您可能有不同的方式来安装 RPM

于 2019-03-19T15:03:47.830 回答
0

在 Windows 上安装 cygwin 后,由于上述问题得到解决,因此关闭此帖子。

但即使现在 rpm 也没有生成。我将结束这个讨论并开启一个新的讨论来讨论这个新问题。

未使用 maven rpm 插件生成的 RPM 文件

于 2014-10-09T12:58:02.193 回答
-1

是否需要安装 rpm-build 软件包 yum install rpm-build

于 2021-11-09T14:50:31.943 回答