Java 带有rpm maven插件的多模块web应用程序示例?
有人知道有任何web应用程序是用Maven构建的,以RPM为基础的吗?提供了构建RPM的功能,但缺少文档 具体来说,我正在寻找一个包含多个模块的示例,即“Maven by example”系列 只有一个模块的示例如下:Java 带有rpm maven插件的多模块web应用程序示例?,java,maven,maven-2,rpm,rpm-maven-plugin,Java,Maven,Maven 2,Rpm,Rpm Maven Plugin,有人知道有任何web应用程序是用Maven构建的,以RPM为基础的吗?提供了构建RPM的功能,但缺少文档 具体来说,我正在寻找一个包含多个模块的示例,即“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://mav
<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>
<goal>attached-rpm</goal>
</goals>
</execution>
</executions>
<configuration>
<copyright>My Company</copyright>
<distribution>My Distribution</distribution>
<group>Applications/Internet</group>
<packager>${user.name}</packager>
<changelogFile>CHANGELOG</changelogFile>
<defaultDirmode>500</defaultDirmode>
<defaultFilemode>400</defaultFilemode>
<defaultUsername>tomcat6</defaultUsername>
<defaultGroupname>tomcat6</defaultGroupname>
<requires>
<require>apache-tomcat >= 6.0.20-2</require>
</requires>
<mappings>
<!-- webapps deployment -->
<mapping>
<directory>${rpm.install.webapps}/${project.artifactId}</directory>
<sources>
<source>
<location>target/${project.artifactId}-${project.version}</location>
</source>
</sources>
</mapping>
<!-- configuration files -->
<mapping>
<directory>${rpm.install.config}</directory>
<configuration>true</configuration>
<sources>
<source>
<location>src/main/resources/my-webapp.jdbc.properties.sample</location>
</source>
<source>
<location>src/main/resources/my-webapp.runtime.properties</location>
<destination>my-webapp.runtime.properties.sample</destination>
</source>
</sources>
</mapping>
<!-- (Optional) Create other necessary directory structure -->
<mapping>
<directory>${rpm.install.basedir}/my-webapp-workspace</directory>
<filemode>750</filemode>
<username>tomcatuser</username>
<groupname>tomcatuser</groupname>
</mapping>
</mappings>
<!-- (Optional) -->
<preinstallScriptlet>
<scriptFile>src/main/scripts/rpm/pre-install.sh</scriptFile>
</preinstallScriptlet>
<!-- (Optional) -->
<postinstallScriptlet>
<script>echo "WARNING: Restart tomcat to ensure changes take effect."</script>
</postinstallScriptlet>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
com.mycompany.app
我的网络应用
战争
1.0-SOME-SNAPSHOT
我的网络应用
http://maven.apache.org
/opt/tomcat6
${rpm.install.basedir}/webapps
${rpm.install.basedir}/lib
朱尼特
朱尼特
3.8.1
测试
javax.servlet
servlet api
2.5
假如
javax.servlet.jsp
jsp api
2.1
假如
javax.servlet.jsp.jstl
JSTLAPI
1.2
org.glassfish.web
jstl impl
1.2
org.codehaus.jackson
杰克逊地图绘制者
1.8.1
org.codehaus.mojo
rpm maven插件
2.1-α-1
真的
附加转速
我的公司
我的分布
应用软件/互联网
${user.name}
变更日志
500
400
tomcat6
tomcat6
ApacheTomcat=6.0.20-2
${rpm.install.webapps}/${project.artifactId}
target/${project.artifactId}-${project.version}
${rpm.install.config}
真的
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工作区
750
tomcatuser
tomcatuser
src/main/scripts/rpm/pre-install.sh
echo“警告:重新启动tomcat以确保更改生效。”
谢谢你的帮助 据我所知,Red Hat正在努力用Fedora(RPM)交付Java项目(POM)。一个很好的例子是JBossApplicationServer7,它现在正在为Fedora打包。使用各种技术和RPM宏将大量POM文件从POM转换为RPM。这些RPM在某种程度上与Maven兼容。我不知道很多细节,但请随意询问列表/irc频道 但我想说的是——一般来说,不可能使用“翻译器”来读取一组pom文件并生成一组rpm文件。有障碍,你必须用手一个一个地包装所有的东西
如果你的目标不是以干净的方式来做,你可以以一个大RPM的速度分发你的应用程序。创建仅二进制rpm非常容易。但这不是linux发行版中提供开源的方式。因此,我在提问时给出的示例是非常错误的,这可能是我没有得到我想要的完整答案的原因。我真正想要的是安装到服务器上的RPM,它依赖于servlet容器(即Tomcat),并将包含的Web应用程序(webapps)安装到Tomcat的webapps目录中 因此,以下是正确的答案:
<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>rpm-with-webapp</artifactId>
<packaging>pom</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>${project.artifactId}</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>com.mycompany.app</groupId>
<artifactId>application-master-pom</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<properties>
<rpm.install.basedir>/srv/apache-tomcat-6.0.33</rpm.install.basedir>
<rpm.install.webapps>${rpm.install.basedir}/webapps</rpm.install.webapps>
<rpm.install.config>${rpm.install.basedir}/lib</rpm.install.config>
</properties>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav</artifactId>
<version>1.0-beta-2</version>
</extension>
</extensions>
</build>
<profiles>
<profile>
<id>build-rpm</id>
<activation>
<property>
<name>build-rpm</name>
</property>
</activation>
<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>
<goal>attached-rpm</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
<configuration>
<classifier>${rpm.classifier}</classifier>
<copyright>My Company</copyright>
<distribution>My Distribution</distribution>
<group>Applications/Internet</group>
<packager>${user.name}</packager>
<changelogFile>CHANGELOG</changelogFile>
<defaultDirmode>500</defaultDirmode>
<defaultFilemode>400</defaultFilemode>
<defaultUsername>tomcatuser</defaultUsername>
<defaultGroupname>tomcatuser</defaultGroupname>
<requires>
<require>apache-tomcat >= 6.0.20-2</require>
</requires>
<mappings>
<!-- web app 1 (module #1) -->
<mapping>
<directory>${rpm.install.webapps}/myWebApp1</directory>
<sources>
<source>
<location>../path-to/myWebApp1/target/myWebApp1</location>
</source>
</sources>
</mapping>
<!-- web app 2 (module #2) -->
<mapping>
<directory>${rpm.install.webapps}/myWebApp2</directory>
<sources>
<source>
<location>../path-to/myWebApp2/target/unified-browser-widget</location>
</source>
</sources>
</mapping>
<!-- web app 3 (module #3) -->
<mapping>
<directory>${rpm.install.webapps}/myWebApp3</directory>
<sources>
<source>
<location>../path-to/myWebApp3/target/report-services</location>
</source>
</sources>
</mapping>
</mappings>
<postinstallScriptlet>
<script>echo "WARNING: You may need to restart tomcat to ensure changes take effect."</script>
</postinstallScriptlet>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
4.0.0
com.mycompany.app
使用webapp的rpm
聚甲醛
0.0.1-快照
${project.artifactId}
http://maven.apache.org
com.mycompany.app
应用程序主pom
0.0.1-快照
../pom.xml
/srv/apache-tomcat-6.0.33
${rpm.install.basedir}/webapps
${rpm.install.basedir}/lib
org.apache.maven.wagen
韦伯达
1.0-beta-2
构建rpm
构建rpm
org.codehaus.mojo
rpm maven插件
2.1-α-1
真的
附加转速
验证
${rpm.classifier}
我的公司
我的分布
应用软件/互联网
${user.name}
变更日志
500
400
tomcatuser
tomcatuser
ApacheTomcat=6.0.20-2
${rpm.install.webapps}/myWebApp1
../myWebApp1/target/myWebApp1的路径