Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有rpm maven插件的多模块web应用程序示例?_Java_Maven_Maven 2_Rpm_Rpm Maven Plugin - Fatal编程技术网

Java 带有rpm maven插件的多模块web应用程序示例?

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

有人知道有任何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://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 &gt;= 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 &gt;= 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的路径