使用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发行版中如何提供开源的方式。