3

I am new to Maven and RPM production.

I have been able successfully build a WAR, package it in a RPM and install it.

To build the rpm I use the following command:

mvn install rpm:rpm

This builds the WAR file, installs it to my local repository and generates the RPM file.

The question that I have is:

Have I violated an norms or standards in the manner in which I have configured my rpm-maven-plugin?

My pom.xml:

<?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/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>myGroupId</groupId>
    <artifactId>myapp</artifactId>
    <version>1.1.0</version>
    <packaging>war</packaging>
    <name>My App</name>

    ...

    <build>
        <sourceDirectory>${basedir}/src</sourceDirectory>
        <scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory>
        <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
        <outputDirectory>${basedir}/target/classes</outputDirectory>
        <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
        <resources>
            <resource>
                <directory>${basedir}/src</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>${basedir}/src/test/resources</directory>
            </testResource>
        </testResources>
        <directory>${basedir}/target</directory>
        <finalName>myapp</finalName>
        <pluginManagement>
        <plugins>
            ...
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>rpm-maven-plugin</artifactId>
                <version>2.1.5</version>
                <configuration>

                    <defineStatements>
                        <defineStatement>_project myproject</defineStatement>
                        <defineStatement>_tomcat_root ${TOMCAT_ROOT}</defineStatement>
                    </defineStatements>

                    <copyright>myCopyright</copyright>
                    <distribution>myApp</distribution>
                    <group>Applications/System</group>
                    <description>
                        My description
                    </description>

                    <defaultDirmode>755</defaultDirmode>
                    <defaultFilemode>644</defaultFilemode>
                    <defaultGroupname>myapp</defaultGroupname>
                    <defaultUsername>myapp</defaultUsername>
                    <mappings>
                        <mapping>
                            <directory>%{_tomcat_root}/webapps</directory>
                            <configuration>true</configuration>
                            <sources>
                                <source>
                                    <location>../MyApp/config</location>
                                </source>
                            </sources>
                        </mapping>
                        <mapping>
                            <directory>%{_tomcat_root}/webapps</directory>
                            <artifact>
                                <classifiers>
                                    <classifier/>
                                </classifiers>
                            </artifact>
                        </mapping>
                    </mappings>

                    <preinstallScriptlet>
                        <script>
                            echo "Installing to Tomcat Root Directory: %{_tomcat_root}"
                            echo "stopping tomcat6"
                            /etc/init.d/tomcat6 stop
                        </script>
                    </preinstallScriptlet>
                    <postinstallScriptlet>
                        <script>
                            echo "Running postinstallScriptlet - script"
                            echo "starting tomcat6"
                            /etc/init.d/tomcat6 start
                        </script>
                    </postinstallScriptlet>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
SilverNak
  • 3,283
  • 4
  • 28
  • 44
KevinC
  • 115
  • 1
  • 1
  • 8

0 Answers0