标签: rpm-maven-plugin

RPM文件不是使用maven 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 /> …
Run Code Online (Sandbox Code Playgroud)

java rpm maven rpm-maven-plugin

9
推荐指数
1
解决办法
1万
查看次数

使用rpm-maven-plugin的多模块Web应用程序示例?

有没有人知道使用Maven构建到RPM的任何Web应用程序?该RPM Maven插件提供了构建一个RPM的功能,但它的文档缺乏.

具体来说,我正在寻找一个包含多个模块的示例,即第8章"多模块项目",来自"Maven by Example"系列.

只有一个模块的示例如下:

<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.mycompany.app</groupId>
  <artifactId>my-webapp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SOME-SNAPSHOT</version>
  <name>my-webapp</name>
  <url>http://maven.apache.org</url>

  <properties>
    <rpm.install.basedir>/opt/tomcat6</rpm.install.basedir>
    <rpm.install.webapps>${rpm.install.basedir}/webapps</rpm.install.webapps>
    <rpm.install.config>${rpm.install.basedir}/lib</rpm.install.config>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- Servlet -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp.jstl</groupId>
        <artifactId>jstl-api</artifactId>
        <version>1.2</version>
    </dependency>       
    <dependency>
        <groupId>org.glassfish.web</groupId>
        <artifactId>jstl-impl</artifactId>
        <version>1.2</version>
    </dependency>

    <!-- Jackson JSON Processor -->
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.8.1</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rpm-maven-plugin</artifactId>
        <version>2.1-alpha-1</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <goals> …
Run Code Online (Sandbox Code Playgroud)

java maven-2 rpm maven rpm-maven-plugin

8
推荐指数
1
解决办法
2万
查看次数

Maven RPM插件中的可选映射部分?

我有一个Maven RPM插件映射:

<mapping>
  <directory>/etc/myconfig</directory>
  <configuration>true</configuration>
  <sources>
    <source>
      <location>${project.build.directory}</location>
      <includes>
        <include>*.conf</include>
      </includes>
    </source>
  </sources>
</mapping>
Run Code Online (Sandbox Code Playgroud)

但是,根据打包过程,可能会有零.conf文件放入/ etc.发生这种情况时,RPM插件会说:

[ERROR] Failed to execute goal org.codehaus.mojo:rpm-maven-plugin:2.1.2:rpm (default) on project clients: 
Unable to copy files for packaging: You must set at least one file. -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

有没有办法让一个映射部分满意包含零文件?

maven rpm-maven-plugin

7
推荐指数
1
解决办法
2236
查看次数

maven-rpm-plugin和rpm-maven-plugin有什么区别

我看到两个在线的引用,但无法找出原因.有区别吗?如果是这样,怎么样?

rpm maven rpm-maven-plugin

5
推荐指数
1
解决办法
1370
查看次数

rpm-maven-plugin和OS X.

我正在尝试在OSX上设置一个maven项目,并使用它rpm-maven-plugin来构建它作为RPM包.但是,即使最简单的插件配置似乎也失败了.我得到的错误是Bad exit status from /usr/local/Cellar/rpm/5.4.10/var/tmp/rpm-tmp.50667 (%install).详细输出不会提供太多信息.生成的spec文件如下所示:

Name: server
Version: 1.0
Release: SNAPSHOT20130920084527
Summary: MySummary
License: 2013 MyCompany
Distribution: MyDistribution
Group: Application/SomeGroup
Packager: me
autoprov: yes
autoreq: yes
Prefix: /app/theapp
BuildRoot: /Users/me/Projects/projectname/server/target/rpm/server/buildroot

%description
My Description

%install
if [ -e $RPM_BUILD_ROOT ];
then
  mv /Users/me/Projects/projectname/server/target/rpm/server/tmp-buildroot/*         $RPM_BUILD_ROOT
else
  mv /Users/me/Projects/projectname/server/target/rpm/server/tmp-buildroot $RPM_BUILD_ROOT
fi

%files
%defattr(644,-,-,755)
  "/"
Run Code Online (Sandbox Code Playgroud)

构建RPM的命令是 /usr/local/bin/rpmbuild -vvv -bb --target noarch --buildroot /Users/me/Projects/projectname/server/target/rpm/server/buildroot --define '_topdir /tmp' server.spec

我不确定它是OSX问题还是一般的rpm-maven-plugin问题,但我怀疑它是OSX问题,因为我在其他平台上使用rpm-maven-plugin构建RPM.

有没有其他人成功使用过rpm-maven-pluginOSX?

编辑

我正在使用rpm-maven-plugin2.1-alpha-3,OS X 10.8.4并通过自制软件安装rpm.我还验证了相同的配置适用于CentOS Vagrant盒子.

java rpmbuild maven rpm-spec rpm-maven-plugin

5
推荐指数
0
解决办法
1016
查看次数

为什么Maven没有使用预期的配置文件?

我正在使用Maven构建一些项目,它使用gMaven插件来构建包含主要工件的RPM.我只希望Maven尝试在具有rpmbuild的系统上构建RPM,而不是在没有的系统上构建RPM,因此我构建了两个独立的配置文件,一个应该是默认的,一个应该在Unix系列上激活OS.

我可以发誓,我测试了它,一切正常,但现在它运行Unix系列配置文件,即使我在OSX上构建.但是,如果我将配置文件的OS系列更改为"windows",它肯定知道它不在Windows机器上,因此运行默认配置文件.

这是我的pom.xml文件的相关部分:

<profiles>
    <profile>
        <id>default-profile</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <rpmPhase>none</rpmPhase>
        </properties>
    </profile>
    <profile>
        <id>rpm-profile</id>
        <activation>
            <os>
                <family>unix</family>
            </os>
        </activation>
        <properties>
            <rpmPhase>package</rpmPhase>
        </properties>
    </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

在Maven输出中:

OS name: "mac os x", version: "10.9.4", arch: "x86_64", family: "mac"
Run Code Online (Sandbox Code Playgroud)

但是,Maven将rpmPhase设置为"package"而不是"none",这不是预期的行为.

任何人都可以看到我在这里遗失了什么吗?

编辑:

此外,如果我将OS系列设置为不存在的东西,或者我完全注释掉激活块,则使用默认配置文件,因此Maven似乎正在积极地将我的OSX与Unix系列操作系统匹配.

maven-2 maven maven-profiles rpm-maven-plugin

5
推荐指数
2
解决办法
1333
查看次数

使用 maven 的 RPM 包

我正在尝试使用 maven 插件构建 RPM 包。

如果我添加插件配置 RPM 包没有被制作,RPM 插件站点上的手册说包标签应该是 RPM 但这似乎导致构建失败,说这个目标是有效的。

有没有人有任何可以分享的例子?

编辑 错误是未知包装:rpm

<groupId>...</groupId>
<artifactId>...</artifactId>
<version>...</version>
<packaging>rpm</packaging>

<profile>
            <id>local</id>
            <build>
                <resources>
                    <resource>
                        <directory>src/main/resources/properties/dev</directory>
                    </resource>
                    <resource>
                        <directory>src/main/resources/txt</directory>
                    </resource>
                    <resource>
                        <directory>src/main/resources/universal</directory>
                    </resource>
                </resources>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>rpm-maven-plugin</artifactId>
                        <version>2.1-alpha-3</version>
                        <extensions>true</extensions>
                        <executions>
                            <execution>
                                <id>generate-rpm</id>
                                <goals><goal>rpm</goal></goals>
                                <phase>prepare-package</phase>
                            </execution>
                        </executions>
                        <configuration>
                            <summary>...</summary>
                            <name>...</name>
                            <version>...</version>
                            <release>...</release>
                            <vendor>...</vendor>
                            <packager>...</packager>
                            <group>Application</group>
                            <mappings>
                                <mapping>
                                    <directory>/tmp/testing</directory>
                                </mapping>
                            </mappings>
                            <!--<requires>filesystem, bash, grep</requires>-->

                            <description>
                                ...
                            </description>

                            <prepareScript>RPMScripts/prep.bash</prepareScript>
                            <preinstallScript>RPMScripts/preInstall.bash</preinstallScript>
                            <install>RPMScripts/install.bash</install>
                            <postinstall>RPMScripts/postInstall.bash</postinstall>
                            <cleanScript>RPMScripts/clean.bash</cleanScript>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.1</version>
                        <configuration>
                            <failOnError>true</failOnError>
                        </configuration>
                    </plugin>
                    <plugin> …
Run Code Online (Sandbox Code Playgroud)

java unix rpm maven rpm-maven-plugin

4
推荐指数
1
解决办法
2万
查看次数

无法在项目inv项目上执行目标org.codehaus.mojo:rpm -maven-plugin:2.0.1:rpm(default-cli)

我在创建我的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 …
Run Code Online (Sandbox Code Playgroud)

java maven rpm-maven-plugin

4
推荐指数
2
解决办法
2万
查看次数

参数'sourceEncoding'rpm -maven-plugin缺失或无效

我试图使用rpm maven插件,我得到以下错误:

[错误]无法执行目标org.codehaus.mojo:rpm -maven-plugin:2.1.3:项目上的rpm(generate-rpm)TestRpmAndDocker:目标org.codehaus.mojo的参数'sourceEncoding':rpm-maven-插件:2.1.3:rpm丢失或无效 - > [帮助1] org.apache.maven.lifecycle.LifecycleExecutionException:无法执行目标org.codehaus.mojo:rpm -maven-plugin:2.1.3:rpm(生成-rpm)on project TestRpmAndDocker:目标org.codehaus.mojo的参数'sourceEncoding':rpm -maven-plugin:2.1.3:rpm在org.apache.maven.lifecycle.internal.MojoExecutor.execute中丢失或无效( MojoExecutor.java:220)org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)at org .apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108)位于org.apache.mave的org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76)n.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)org.apache.maven.life.internal.LifecycleStarter.execute(LifecycleStarter.java:116)atg.apache.maven.DefaultMaven. doOecute(DefaultMaven.java:361)org.apache.maven.maven.DefaultMaven.execute(DefaultMaven.java:155)org.apache.maven.cli.MavenCli.execute(MavenCli.java:584)atg.apache.maven位于org.apache.maven.cli.MavenCli.main(mavenCli.java:157)的.cli.MavenCli.doMain(MavenCli.java:213)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl .invoke(NativeMethodAccessorImpl.java:62)位于org.codehaus.plexus.classworlds的java.lang.reflect.Method.invoke(Method.java:497)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43). launcher.Launcher.launchEnhanced(Launcher.java:289)org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)org.codehaus.plexus.classworlds.launcher.Launc her.mainWithExitCode(Launcher.java:415)at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)引起:org.apache.maven.plugin.PluginParameterException:参数'sourceEncoding'for目标org.codehaus.mojo:rpm -maven-plugin:2.1.3:在org.apache.maven的org.apache.maven.plugin.internal.DefaultMavenPluginManager.populatePluginFields(DefaultMavenPluginManager.java:584)中,rpm丢失或无效. plug.internal.DefaultMavenPluginManager.getConfiguredMojo(DefaultMavenPluginManager.java:537)org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:120)org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor. java:208)......还有19个

这是我的pom:

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>TestRpmAndDocker</groupId>
<artifactId>TestRpmAndDocker</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>TestRpmAndDocker</name>
<description>TestRpmAndDocker</description>


<build>

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>rpm-maven-plugin</artifactId>
            <version>2.1.3</version>
            <executions>
                <execution>
                    <id>generate-rpm</id>
                    <goals>
                        <goal>rpm</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <license>GPL (c) 2005, SWWDC</license>
                <distribution>Trash 2005</distribution>
                <group>Application/Collectors</group>
                <icon>src/main/resources/icon.gif</icon>
                <packager>SWWDC</packager>
                <prefix>/usr/local</prefix>
                <changelogFile>src/changelog</changelogFile>
                <defineStatements>
                    <defineStatement>_unpackaged_files_terminate_build 0</defineStatement>
                </defineStatements>
                <mappings>
                    <mapping>
                        <directory>/usr/local/bin/landfill</directory> …
Run Code Online (Sandbox Code Playgroud)

java rpm maven rpm-maven-plugin

4
推荐指数
1
解决办法
6175
查看次数

rpm-maven-plugin截断rpm版本

我用rpm -maven-plugin构建了三个包.一个父级和两个需要同一版本父级的插件.一切正常,直到我用XY-SNAPSHOT版本构建它.然后我的rpm版本被截断为XYpart,但值${project.version}仍然是XY-SNAPSHOT.它导致插件需要XY-SNAPSHOT父版本,而我已经安装了XY版本.

我想知道我是否可以在"requires"部分使用"截断"版本或强制插件截断我的版本......

这是我的配置:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>rpm-maven-plugin</artifactId>
    <version>2.0.1</version>
    <executions>
        <execution>
            <id>parent-package</id>
            <goals>
                <goal>rpm</goal>
            </goals>
            <configuration>
                <name>parent-package</name>
                <mappings>
                    (...)
                </mappings>
            </configuration>
        </execution>
        <execution>
            <id>first-plugin</id>
            <goals>
                <goal>rpm</goal>
            </goals>
            <configuration>
                <name>first-plugin</name>
                <mappings>
                    (...)
                </mappings>
                <requires>
                    <require>parent-package = ${project.version}</require>
                </requires>
            </configuration>
        </execution>
        <execution>
            <id>second-plugin</id>
            <goals>
                <goal>rpm</goal>
            </goals>
            <configuration>
                <name>second-plugin</name>
                <mappings>
                    (...)
                </mappings>
                <requires>
                    <require>parent-package = ${project.version}</require>
                </requires>
            </configuration>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

maven rpm-maven-plugin

3
推荐指数
1
解决办法
5943
查看次数

标签 统计

maven ×10

rpm-maven-plugin ×10

java ×6

rpm ×5

maven-2 ×2

maven-profiles ×1

rpm-spec ×1

rpmbuild ×1

unix ×1