我试图在我的
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>
它将完美地模仿您在命令行上所做的任何事情.
希望有所帮助.