我试图在我的
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-project\test
- [DEBUG] (s) includes = [*.jar]
- [DEBUG] (s) sources = [{"D:\INV-project\test" incl:[*.jar]}]
- [DEBUG] (s) directory = /conf/
- [DEBUG] (s) filemode = 755
- [DEBUG] (s) username = omc
- [DEBUG] (s) groupname = sysop
- [DEBUG] (s) location = D:\INV-project\src\resources
- [DEBUG] (s) includes = [*.properties]
- [DEBUG] (s) sources = [{"D:\INV-project\src\resources" incl:[*.properties]}]
- [DEBUG] (f) mappings = [["/bin/" {%attr(755,omc,sysop)} from [{"D:\INV-project\test" incl:[*.jar]}]],["/conf/" {%attr(755,sysop)} from [{"D:\INV-project\src\resources" 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-project\pom.xml
- [DEBUG] (f) projversion = 1.0-SNAPSHOT
- [DEBUG] (f) release = 1
- [DEBUG] (f) summary = mvi_cmpipe
- [DEBUG] (f) workarea = D:\INV-project\target\rpm
- [DEBUG] -- end configuration --
- [DEBUG] project version = 1.0-SNAPSHOT
- [WARNING] Version string truncated to 1.0
- [DEBUG] targetArch = noarch
- [INFO] Creating directory D:\INV-project\target\rpm
- [INFO] Creating directory D:\INV-project\target\rpm\BUILD
- [INFO] Creating directory D:\INV-project\target\rpm\RPMS
- [INFO] Creating directory D:\INV-project\target\rpm\SOURCES
- [INFO] Creating directory D:\INV-project\target\rpm\SPECS
- [INFO] Creating directory D:\INV-project\target\rpm\SRPMS
- [INFO] Creating directory D:\INV-project\target\rpm\buildroot
- [INFO] Copying 1 files to D:\INV-project\target\rpm\buildroot\bin
- [INFO] Copying 1 files to D:\INV-project\target\rpm\buildroot\conf
- [INFO] Creating spec file D:\INV-project\target\rpm\SPECS\ORG-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-project\target\rpm\buildroot --define "_topdir D:\INV-project\target\rpm" --target noarch ORG-generic_mediations.spec"'
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SETLOCAL
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>PUSHD .
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>REM Update buildroot path
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>FOR /F "tokens=*" %i in ('cygpath D:\INV-project\target\rpm\buildroot') do SET NEW_BUILDROOT=%i
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET NEW_BUILDROOT=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm/buildroot
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>REM Update topdir path
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET TOPDIR="_topdir D:\INV-project\target\rpm"
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET TOPDIR=D:\INV-project\target\rpm
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>FOR /F "tokens=*" %i in ('cygpath "D:\INV-project\target\rpm"') do SET NEW_TOPDIR=%i
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET NEW_TOPDIR=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>REM Replace path in spec-file
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET OLD_PATH=D:\\ORG\\Project\\MVI\\PM\\INV\\Eric3g_LTE\\trunk\\INV\\Install\\inv-project\\target\\rpm
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET NEW_PATH=\/cygdrive\/d\/ORG\/Project\/MVI\/PM\/INV\/Eric3g_LTE\/trunk\/INV\/Install\/inv-project\/target\/rpm
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>sed -s -i -e s/D:\\ORG\\Project\\MVI\\PM\\INV\\Eric3g_LTE\\trunk\\INV\\Install\\inv-project\\target\\rpm\\/\/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-project\target\rpm\SPECS>REM Execute rpmbuild
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>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-project\target\rpm\SPECS>POPD
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>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-project\src\resources" 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-project\pom.xml
- [DEBUG] (f) projversion = 1.0-SNAPSHOT
- [DEBUG] (f) release = 1
- [DEBUG] (f) summary = mvi_cmpipe
- [DEBUG] (f) workarea = D:\INV-project\target\rpm
- [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-project\target\rpm\buildroot\bin
- [INFO] Copying 1 files to D:\INV-project\target\rpm\buildroot\conf
- [INFO] Creating spec file D:\INV-project\target\rpm\SPECS\ORG-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-project\target\rpm\buildroot --define "_topdir D:\INV-project\target\rpm" --target noarch ORG-generic_mediations.spec"'
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SETLOCAL
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>PUSHD .
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>REM Update buildroot path
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>FOR /F "tokens=*" %i in ('cygpath D:\INV-project\target\rpm\buildroot') do SET NEW_BUILDROOT=%i
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET NEW_BUILDROOT=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm/buildroot
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>REM Update topdir path
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET TOPDIR="_topdir D:\INV-project\target\rpm"
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET TOPDIR=D:\INV-project\target\rpm
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>FOR /F "tokens=*" %i in ('cygpath "D:\INV-project\target\rpm"') do SET NEW_TOPDIR=%i
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET NEW_TOPDIR=/cygdrive/d/ORG/Project/MVI/PM/INV/Eric3g_LTE/trunk/INV/Install/inv-project/target/rpm
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>REM Replace path in spec-file
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET OLD_PATH=D:\\ORG\\Project\\MVI\\PM\\INV\\Eric3g_LTE\\trunk\\INV\\Install\\inv-project\\target\\rpm
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>SET NEW_PATH=\/cygdrive\/d\/ORG\/Project\/MVI\/PM\/INV\/Eric3g_LTE\/trunk\/INV\/Install\/inv-project\/target\/rpm
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>sed -s -i -e s/D:\\ORG\\Project\\MVI\\PM\\INV\\Eric3g_LTE\\trunk\\INV\\Install\\inv-project\\target\\rpm\\/\/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-project\target\rpm\SPECS>REM Execute rpmbuild
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>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-project\target\rpm\SPECS>POPD
- [INFO]
- [INFO] D:\INV-project\target\rpm\SPECS>ENDLOCAL
- [DEBUG] Replacing attached artifact com.Org.oss.INV.cmpipe.routes:mvi_cmpipe:rpm:rpm:1.0-SNAPSHOT. Old path D:\INV-project\target\rpm\RPMS\noarch\ORG-generic_mediations-1.0-1.noarch.rpm,new path D:\INV-project\target\rpm\RPMS\noarch\ORG-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>
它将完美地模仿您在命令行上所做的任何事情.
希望有所帮助.