加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用maven rpm插件生成的RPM文件

发布时间:2020-12-15 00:41:07 所属栏目:Java 来源:网络整理
导读:我试图在我的 Windows机器上创建我的maven项目的.rpm文件. 我按照下面链接中给出的步骤来实现它 http://tim-perry.co.uk/blog/2012/11/22/building_rpms_on_windows_with_maven 当我运行命令mvn package rpm:attached-rpm时,它显示构建成功但没有生成rpm文
我试图在我的 Windows机器上创建我的maven项目的.rpm文件.

我按照下面链接中给出的步骤来实现它

http://tim-perry.co.uk/blog/2012/11/22/building_rpms_on_windows_with_maven

当我运行命令mvn package rpm:attached-rpm时,它显示构建成功但没有生成rpm文件.
相反,它在目标下创建一个名为“rpm”的目录,并复制此目录下所有需要的文件(如pom中所述).

让我知道我在这里失踪了什么.

下面是我正在使用的pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.org</groupId>
    <artifactId>inv_project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>inv_project</name>
    <url>http://maven.apache.org</url>



    <build>
       <plugins>
           <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>rpm-maven-plugin</artifactId>
                <version>2.0-beta-1</version>
                <extensions>true</extensions>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>attached-rpm</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <name>PName</name>
                    <release>1</release>
                    <copyright></copyright>
                    <distribution></distribution>
                    <workarea>target/rpm</workarea>
                    <group></group>
                    <mappings>
                    <mapping>
                            <directory>/bin/</directory>
                            <filemode>755</filemode>
                            <username>user</username>
                            <groupname>sysop</groupname>
                            <sources>
                                <source>
                                    <location>test/</location>
                                    <includes>
                                        <include>*.jar</include>
                                    </includes>
                                </source>
                            </sources>
                        </mapping>
                        <mapping>
                            <directory>/conf/</directory>
                            <filemode>755</filemode>
                            <username>user</username>
                            <groupname>sysop</groupname>
                            <sources>
                                <source>
                                    <location>src/resources</location>
                                    <includes>                                      
                                        <include>*.properties</include>
                                    </includes>
                                </source>
                            </sources>
                        </mapping>
                    </mappings>
                    <postinstallScript />
                </configuration>
            </plugin>
     </plugins>
    </build>

</project>

添加日志

[INFO] --- rpm-maven-plugin:2.0-beta-2:attached-rpm (attach-rpm) @ mvi_cmpipe ---
[DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=0,ConflictMarker.markTime=0,ConflictMarker.nodeCount=30,ConflictIdSorter.graphTime=0,ConflictIdSorter.topsortTime=0,ConflictIdSorter.conflictIdCount=13,ConflictIdSorter.conflictIdCycleCount=0,ConflictResolver.totalTime=1,ConflictResolver.conflictItemCount=27,DefaultDependencyCollector.collectTime=14,DefaultDependencyCollector.transformTime=2}
[DEBUG] org.codehaus.mojo:rpm-maven-plugin:jar:2.0-beta-2:
[DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0:compile
[DEBUG]    org.codehaus.plexus:plexus-archiver:jar:1.0-alpha-5:compile
[DEBUG]       org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8:compile
[DEBUG]          junit:junit:jar:3.8.2:test
[DEBUG]          classworlds:classworlds:jar:1.1-alpha-2:compile
[DEBUG]    org.codehaus.plexus:plexus-utils:jar:1.5.7:compile
[DEBUG]    org.apache.maven:maven-artifact:jar:2.0:compile
[DEBUG]    org.apache.maven:maven-project:jar:2.0:compile
[DEBUG]       org.apache.maven:maven-profile:jar:2.0:compile
[DEBUG]       org.apache.maven:maven-artifact-manager:jar:2.0:compile
[DEBUG]          org.apache.maven:maven-repository-metadata:jar:2.0:compile
[DEBUG]    org.apache.maven:maven-model:jar:2.0:compile
[DEBUG] Created new class realm plugin>org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2
[DEBUG] Importing foreign packages into class realm plugin>org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2
[DEBUG]   Imported:  < project>com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:1.0-SNAPSHOT
[DEBUG] Populating class realm plugin>org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2
[DEBUG]   Included: org.codehaus.mojo:rpm-maven-plugin:jar:2.0-beta-2
[DEBUG]   Included: org.codehaus.plexus:plexus-archiver:jar:1.0-alpha-5
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:1.5.7
[DEBUG]   Excluded: org.apache.maven:maven-plugin-api:jar:2.0
[DEBUG]   Excluded: org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8
[DEBUG]   Excluded: junit:junit:jar:3.8.2
[DEBUG]   Excluded: classworlds:classworlds:jar:1.1-alpha-2
[DEBUG]   Excluded: org.apache.maven:maven-artifact:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-project:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-profile:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-artifact-manager:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-repository-metadata:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-model:jar:2.0
[DEBUG] Configuring mojo org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2:attached-rpm from plugin realm ClassRealm[plugin>org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2,parent: sun.misc.Launcher$AppClassLoader@33d626a4]
[DEBUG] Configuring mojo 'org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2:attached-rpm' with basic configurator -->
[DEBUG]   (f) artifact = com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:pom:1.0-SNAPSHOT
[DEBUG]   (f) attachedArtifacts = []
[DEBUG]   (f) copyright = 2010,Org Siemens Networks
[DEBUG]   (f) distribution = NAC
[DEBUG]   (f) group = NAC
[DEBUG]   (s) directory = /bin/
[DEBUG]   (s) filemode = 755
[DEBUG]   (s) username = omc
[DEBUG]   (s) groupname = sysop
[DEBUG]   (s) location = D:INV-projecttest
[DEBUG]   (s) includes = [*.jar]
[DEBUG]   (s) sources = [{"D:INV-projecttest" incl:[*.jar]}]
[DEBUG]   (s) directory = /conf/
[DEBUG]   (s) filemode = 755
[DEBUG]   (s) username = omc
[DEBUG]   (s) groupname = sysop
[DEBUG]   (s) location = D:INV-projectsrcresources
[DEBUG]   (s) includes = [*.properties]
[DEBUG]   (s) sources = [{"D:INV-projectsrcresources" incl:[*.properties]}]
[DEBUG]   (f) mappings = [["/bin/" {%attr(755,omc,sysop)} from [{"D:INV-projecttest" incl:[*.jar]}]],["/conf/" {%attr(755,sysop)} from [{"D:INV-projectsrcresources" incl:[*.properties]}]]]
[DEBUG]   (f) name = ORG-generic_mediations
[DEBUG]   (f) project = MavenProject: com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:1.0-SNAPSHOT @ D:INV-projectpom.xml
[DEBUG]   (f) projversion = 1.0-SNAPSHOT
[DEBUG]   (f) release = 1
[DEBUG]   (f) summary = mvi_cmpipe
[DEBUG]   (f) workarea = D:INV-projecttargetrpm
[DEBUG] -- end configuration --
[DEBUG] project version = 1.0-SNAPSHOT
[WARNING] Version string truncated to 1.0
[DEBUG] targetArch = noarch
[INFO] Creating directory D:INV-projecttargetrpm
[INFO] Creating directory D:INV-projecttargetrpmBUILD
[INFO] Creating directory D:INV-projecttargetrpmRPMS
[INFO] Creating directory D:INV-projecttargetrpmSOURCES
[INFO] Creating directory D:INV-projecttargetrpmSPECS
[INFO] Creating directory D:INV-projecttargetrpmSRPMS
[INFO] Creating directory D:INV-projecttargetrpmbuildroot
[INFO] Copying 1 files to D:INV-projecttargetrpmbuildrootbin
[INFO] Copying 1 files to D:INV-projecttargetrpmbuildrootconf
[INFO] Creating spec file D:INV-projecttargetrpmSPECSORG-generic_mediations.spec
[DEBUG] writing attriute string for directory: /bin/
[DEBUG] writing attriute string for directory: /conf/
[DEBUG] About to execute 'cmd.exe /X /C "rpmbuild -bb --buildroot D:INV-projecttargetrpmbuildroot --define "_topdir D:INV-projecttargetrpm" --target noarch ORG-generic_mediations.spec"'
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SETLOCAL
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>PUSHD .
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>REM Update buildroot path
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>FOR /F "tokens=*" %i in ('cygpath D:INV-projecttargetrpmbuildroot') do SET NEW_BUILDROOT=%i
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET NEW_BUILDROOT=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm/buildroot
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>REM Update topdir path
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET TOPDIR="_topdir D:INV-projecttargetrpm"
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET TOPDIR=D:INV-projecttargetrpm
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>FOR /F "tokens=*" %i in ('cygpath "D:INV-projecttargetrpm"') do SET NEW_TOPDIR=%i
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET NEW_TOPDIR=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>REM Replace path in spec-file
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET OLD_PATH=D:ORGProjectMVIPMINVEric3g_LTEtrunkINVInstallinv-projecttargetrpm
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET NEW_PATH=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>sed -s -i -e s/D:ORGProjectMVIPMINVEric3g_LTEtrunkINVInstallinv-projecttargetrpm//cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm//g ORG-generic_mediations.spec
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>REM Execute rpmbuild
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>bash -c "rpmb -bb --buildroot /cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm/buildroot --define ""_topdir /cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm"" --target "noarch" --define ""_build_name_fmt %{ARCH}/%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm"" ORG-generic_mediations.spec"
[INFO] Building target platforms: noarch
[INFO] Building for target noarch
[INFO] Processing files: ORG-generic_mediations-1.0-1.noarch
[INFO]
[WARNING] error: No file attributes configured
[WARNING]     No file attributes configured
[INFO]
[INFO] RPM build errors:
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>POPD
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>ENDLOCAL
[INFO]
[INFO] --- rpm-maven-plugin:2.0-beta-2:attached-rpm (default-cli) @ mvi_cmpipe ---
[DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=0,ConflictIdSorter.graphTime=1,DefaultDependencyCollector.collectTime=10,DefaultDependencyCollector.transformTime=2}
[DEBUG] org.codehaus.mojo:rpm-maven-plugin:jar:2.0-beta-2:
[DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0:compile
[DEBUG]    org.codehaus.plexus:plexus-archiver:jar:1.0-alpha-5:compile
[DEBUG]       org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8:compile
[DEBUG]          junit:junit:jar:3.8.2:test
[DEBUG]          classworlds:classworlds:jar:1.1-alpha-2:compile
[DEBUG]    org.codehaus.plexus:plexus-utils:jar:1.5.7:compile
[DEBUG]    org.apache.maven:maven-artifact:jar:2.0:compile
[DEBUG]    org.apache.maven:maven-project:jar:2.0:compile
[DEBUG]       org.apache.maven:maven-profile:jar:2.0:compile
[DEBUG]       org.apache.maven:maven-artifact-manager:jar:2.0:compile
[DEBUG]          org.apache.maven:maven-repository-metadata:jar:2.0:compile
[DEBUG]    org.apache.maven:maven-model:jar:2.0:compile
[DEBUG] Created new class realm plugin>org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2--650166454
[DEBUG] Importing foreign packages into class realm plugin>org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2--650166454
[DEBUG]   Imported:  < project>com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:1.0-SNAPSHOT
[DEBUG] Populating class realm plugin>org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2--650166454
[DEBUG]   Included: org.codehaus.mojo:rpm-maven-plugin:jar:2.0-beta-2
[DEBUG]   Included: org.codehaus.plexus:plexus-archiver:jar:1.0-alpha-5
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:1.5.7
[DEBUG]   Excluded: org.apache.maven:maven-plugin-api:jar:2.0
[DEBUG]   Excluded: org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8
[DEBUG]   Excluded: junit:junit:jar:3.8.2
[DEBUG]   Excluded: classworlds:classworlds:jar:1.1-alpha-2
[DEBUG]   Excluded: org.apache.maven:maven-artifact:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-project:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-profile:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-artifact-manager:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-repository-metadata:jar:2.0
[DEBUG]   Excluded: org.apache.maven:maven-model:jar:2.0
[DEBUG] Configuring mojo org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2:attached-rpm from plugin realm ClassRealm[plugin>org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2--650166454,parent: sun.misc.Launcher$AppClassLoader@33d626a4]
[DEBUG] Configuring mojo 'org.codehaus.mojo:rpm-maven-plugin:2.0-beta-2:attached-rpm' with basic configurator -->
[DEBUG]   (f) artifact = com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:pom:1.0-SNAPSHOT
[DEBUG]   (f) attachedArtifacts = [com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:rpm:rpm:1.0-SNAPSHOT]
[DEBUG]   (f) copyright = 2010,sysop)} from [{"D:INV-projectsrcresources" incl:[*.properties]}]]]
[DEBUG]   (f) name = ORG-generic_mediations
[DEBUG]   (f) project = MavenProject: com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:1.0-SNAPSHOT @ D:INV-projectpom.xml
[DEBUG]   (f) projversion = 1.0-SNAPSHOT
[DEBUG]   (f) release = 1
[DEBUG]   (f) summary = mvi_cmpipe
[DEBUG]   (f) workarea = D:INV-projecttargetrpm
[DEBUG] -- end configuration --
[DEBUG] project version = 1.0-SNAPSHOT
[WARNING] Version string truncated to 1.0
[DEBUG] targetArch = noarch
[INFO] Copying 1 files to D:INV-projecttargetrpmbuildrootbin
[INFO] Copying 1 files to D:INV-projecttargetrpmbuildrootconf
[INFO] Creating spec file D:INV-projecttargetrpmSPECSORG-generic_mediations.spec
[DEBUG] writing attriute string for directory: /bin/
[DEBUG] writing attriute string for directory: /conf/
[DEBUG] About to execute 'cmd.exe /X /C "rpmbuild -bb --buildroot D:INV-projecttargetrpmbuildroot --define "_topdir D:INV-projecttargetrpm" --target noarch ORG-generic_mediations.spec"'
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SETLOCAL
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>PUSHD .
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>REM Update buildroot path
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>FOR /F "tokens=*" %i in ('cygpath D:INV-projecttargetrpmbuildroot') do SET NEW_BUILDROOT=%i
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET NEW_BUILDROOT=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm/buildroot
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>REM Update topdir path
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET TOPDIR="_topdir D:INV-projecttargetrpm"
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET TOPDIR=D:INV-projecttargetrpm
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>FOR /F "tokens=*" %i in ('cygpath "D:INV-projecttargetrpm"') do SET NEW_TOPDIR=%i
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET NEW_TOPDIR=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>REM Replace path in spec-file
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET OLD_PATH=D:ORGProjectMVIPMINVEric3g_LTEtrunkINVInstallinv-projecttargetrpm
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>SET NEW_PATH=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>sed -s -i -e s/D:ORGProjectMVIPMINVEric3g_LTEtrunkINVInstallinv-projecttargetrpm//cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm//g ORG-generic_mediations.spec
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>REM Execute rpmbuild
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>bash -c "rpmb -bb --buildroot /cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm/buildroot --define ""_topdir /cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm"" --target "noarch" --define ""_build_name_fmt %{ARCH}/%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm"" ORG-generic_mediations.spec"
[INFO] Building target platforms: noarch
[INFO] Building for target noarch
[INFO] Processing files: ORG-generic_mediations-1.0-1.noarch
[INFO]
[INFO]
[WARNING] error: No file attributes configured
[INFO] RPM build errors:
[WARNING]     No file attributes configured
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>POPD
[INFO]
[INFO] D:INV-projecttargetrpmSPECS>ENDLOCAL
[DEBUG] Replacing attached artifact com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:rpm:rpm:1.0-SNAPSHOT. Old path D:INV-projecttargetrpmRPMSnoarchORG-generic_mediations-1.0-1.noarch.rpm,new path D:INV-projecttargetrpmRPMSnoarchORG-generic_mediations-1.0-1.noarch.rpm.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.025 s
[INFO] Finished at: 2014-10-09T19:45:00+05:30
[INFO] Final Memory: 6M/62M

解决方法

您是否已验证可以通过命令行直接构建RPM(即在Maven之外)?

如果没有,那么这整个讨论都没有实际意义,所以我将假设如此.

在这种情况下,只需将该命令传递到Maven exec plugin:

<project>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.3.2</version>
        <executions>
          <execution>
            <goals>
              <goal>exec</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <executable>rpmbuild</executable>
          <workingDirectory>${basedir}</workingDirectory>
          <arguments>
            <argument>--test</argument>
          </arguments>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

它将完美地模仿您在命令行上所做的任何事情.

希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读