Mavenpom4labs usage
2010-01-22

Préambule

Cette page décrit un pom minimal qui utilise correctement mavenpom4labs.

Le pom

<?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>

    <!-- ************************************************************* -->
    <!-- *** POM Relationships *************************************** -->
    <!-- ************************************************************* -->

    <parent>
        <groupId>org.nuiton</groupId>
        <artifactId>mavenpom4labs</artifactId>
        <version>3.0</version>
    </parent>

    <groupId>com.myorganisation</groupId>
    <artifactId>myproject</artifactId>
    <version>0.1-SNAPSHOT</version>

    <!-- ************************************************************* -->
    <!-- *** Project Information ************************************* -->
    <!-- ************************************************************* -->

    <name>TODO</name>

    <description>TODO</description>
    <inceptionYear>2009</inceptionYear>
    <url>http://myproject.${platform}/myproject</url>

    <organization>
        <name>mycompany</name>
        <url>http://www.mycompany.com/</url>
    </organization>

    <developers>

        <!-- developpers of the porject -->

    </developers>

    <!-- ************************************************************* -->
    <!-- *** Build Settings ****************************************** -->
    <!-- ************************************************************* -->
    <packaging>your packaging (pom, jar, war, ear, plugin, ...)</packaging>

    <properties>

        <!-- always use this on a multi-module project -->
        <projectId>myProject</projectId>

        <!-- project's id on the labs -->
        <labs.id>146</labs.id>

    </properties>

    <dependencies>

        <!-- project dependencies -->

    </<dependencies>


    <!-- use always a dependencyManagement for a multi-module project -->

    <dependencyManagement>
        <dependencies>

        </dependencies>
    </dependencyManagement>

    <build>

        <plugins>

            <!-- extra build plugins -->

        </plugins>

        <pluginManagement>
            <plugins>

                <!-- extra plugins -->

                <plugin>
                    <!-- to use rst as documentation format in site -->
                    <artifactId>maven-site-plugin</artifactId>
                    <dependencies>
                        <dependency>
                            <groupId>org.nuiton.jrst</groupId>
                            <artifactId>doxia-module-jrst</artifactId>
                            <version>${jrstPluginVersion}</version>
                        </dependency>
                    </dependencies>
                </plugin>

            </plugins>
        </pluginManagement>

    </build>

    <!-- ************************************************************* -->
    <!-- *** Build Environment  ************************************** -->
    <!-- ************************************************************* -->

    <!--Any mailing lists for the project-->
    <mailingLists>

        <!-- add your own mailing list using this form -->
        <mailingList>
            <name>${projectId}-devel</name>
            <subscribe>http://${labs.list.host}/mailman/listinfo/${projectId}-devel</subscribe>
            <unsubscribe>http://${labs.list.host}/mailman/listinfo/${projectId}-devel</unsubscribe>
            <post>${projectId}-devel@${labs.list.host}</post>
            <archive>http://${labs.list.host}/pipermail/${projectId}-devel/</archive>
        </mailingList>

    </mailingLists>

    <issueManagement>
        <system>gforge</system>
        <url>https://${platform}/tracker?group_id=${labs.id}</url>
    </issueManagement>

    <scm>
        <connection>scm:svn:svn://anonymous@${platform}/svnroot/myproject/myproject/trunk</connection>
        <developerConnection>scm:svn:svn+ssh://${username}@${platform}/svnroot/myproject/myproject/trunk</developerConnection>
        <url>http://${platform}/plugins/scmsvn/viewcvs.php/myproject/trunk/?root=myproject</url>
    </scm>

    <repositories>

        <!-- depot des releases nuiton -->

        <repository>
            <id>nuiton.release</id>
            <name>NuitonReleaseRepository</name>
            <url>http://maven.nuiton.org/release</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
        </repository>

        <!-- depot des snapshots nuiton -->

        <repository>
            <id>nuiton.snapshot</id>
            <name>NuitonSnapshotRepository</name>
            <url>http://maven.nuiton.org/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>

    </repositories>

    <pluginRepositories>

        <!-- depot des releases nuiton -->

        <pluginRepository>

            <id>nuiton.release</id>
            <name>NuitonReleaseRepository</name>
            <url>http://maven.nuiton.org/release</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
                <checksumPolicy>warn</checksumPolicy>
            </releases>
        </pluginRepository>

        <!-- depot des snapshots nuiton -->

        <pluginRepository>
            <id>nuiton.snapshot</id>
            <name>NuitonSnapshotRepository</name>
            <url>http://maven.nuiton.org/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>

    </pluginRepositories>

</project>