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

有没有人知道使用Maven构建到RPM的任何Web应用程序? RPM Maven插件提供了构建RPM的function,但缺少文档。

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

只有一个模块的示例是:

 4.0.0 com.mycompany.app my-webapp war 1.0-SOME-SNAPSHOT my-webapp http://maven.apache.org  /opt/tomcat6 ${rpm.install.basedir}/webapps ${rpm.install.basedir}/lib    junit junit 3.8.1 test    javax.servlet servlet-api 2.5 provided   javax.servlet.jsp jsp-api 2.1 provided   javax.servlet.jsp.jstl jstl-api 1.2   org.glassfish.web jstl-impl 1.2    org.codehaus.jackson jackson-mapper-asl 1.8.1      org.codehaus.mojo rpm-maven-plugin 2.1-alpha-1 true    attached-rpm     My Company My Distribution Applications/Internet ${user.name} CHANGELOG 500 400 tomcat6 tomcat6  apache-tomcat >= 6.0.20-2     ${rpm.install.webapps}/${project.artifactId}   target/${project.artifactId}-${project.version}      ${rpm.install.config} true   src/main/resources/my-webapp.jdbc.properties.sample   src/main/resources/my-webapp.runtime.properties my-webapp.runtime.properties.sample      ${rpm.install.basedir}/my-webapp-workspace 750 tomcatuser tomcatuser     src/main/scripts/rpm/pre-install.sh    echo "WARNING: Restart tomcat to ensure changes take effect."       

感谢您的帮助!

所以,事实certificate我在问我的问题时提出的例子是非常错误的,这可能导致了我为什么没有得到我正在寻找的完整答案。 我真正想要的是安装到服务器的RPM,它依赖于servlet容器(即Tomcat),并将包含的Web应用程序(webapps)安装到Tomcat的webapps目录中。

因此,这是正确的答案:

  4.0.0 com.mycompany.app rpm-with-webapp pom 0.0.1-SNAPSHOT ${project.artifactId} http://maven.apache.org  com.mycompany.app application-master-pom 0.0.1-SNAPSHOT ../pom.xml   /srv/apache-tomcat-6.0.33 ${rpm.install.basedir}/webapps ${rpm.install.basedir}/lib     org.apache.maven.wagon wagon-webdav 1.0-beta-2      build-rpm   build-rpm      org.codehaus.mojo rpm-maven-plugin 2.1-alpha-1 true    attached-rpm  verify    ${rpm.classifier} My Company My Distribution Applications/Internet ${user.name} CHANGELOG 500 400 tomcatuser tomcatuser  apache-tomcat >= 6.0.20-2     ${rpm.install.webapps}/myWebApp1   ../path-to/myWebApp1/target/myWebApp1      ${rpm.install.webapps}/myWebApp2   ../path-to/myWebApp2/target/unified-browser-widget      ${rpm.install.webapps}/myWebApp3   ../path-to/myWebApp3/target/report-services               

需要注意的是我正在寻找一个“多模块”项目,但实际上我的意思是将多个相关的Web应用程序打包到一个RPM中。 因此,此Maven构建的正确配置告诉RPM安装程序需要Apache Tomcat并将Web应用程序安装到Tomcat中的正确文件夹中。

我建议将rpm作为一个单独的项目(即使是多模块的一部分)并让它声明对其他项目提供的war或s或其他工件的依赖。

据我所知, Red Hat正努力在Fedora(RPM)中提供他们的Java项目(POM)。 很好的例子可能是JBoss Application Server 7 ,它正在为Fedora打包。 它是一大堆POM文件,使用各种技术和RPM宏从POM转换为RPM。 这些RPM在某种程度上与Maven兼容。 我不知道很多细节,但可以随意询问列表/ irc频道。

但我的信息是 – 通常不可能使用“翻译器”来读取一组pom文件并生成一组rpm文件。 有障碍,你必须手工包装一切。

如果您的目标不是以干净的方式完成,您可以在一个大的RPM中分发您的应用程序。 它很容易创建二进制rpm。 但这不是linux发行版中如何提供开源的方式。