May 12, 2015 7:24:46 AM Pierre LEVY avatar   925    

Créer un POM de site

Introduction

Le fichier POM d'un site contient au minimum les informations suivantes :

  • La déclaration du POM parent pour tous les sites (lutece-site-pom)
  • Les déclarations des repository Maven ( "Snapshot" facultatif )
  • La déclaration des plugins qui composent le site sous forme de dépendances

Exemple de POM

Voici un exemple de POM :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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/maven-v4_0_0.xsd">

    <parent>
        <artifactId>lutece-site-pom</artifactId>
        <groupId>fr.paris.lutece.tools</groupId>
        <version>2.0.4</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>fr.paris.lutece</groupId>
    <artifactId>site-mysite</artifactId>
    <packaging>lutece-site</packaging>
    <name>Site My Site</name>
    <version>1.0.0-SNAPSHOT</version>

    <repositories>
        <repository>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>luteceSnapshot</id>
            <name>luteceSnapshot</name>
            <url>http://dev.lutece.paris.fr/snapshot_repository</url>
        </repository>
        <repository>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <id>lutece</id>
            <name>luteceRepository</name>
            <url>http://dev.lutece.paris.fr/maven_repository</url>
        </repository>
    </repositories>

    <dependencies>

        <!-- Lutece Core -->
        <dependency>
            <groupId>fr.paris.lutece</groupId>
            <artifactId>lutece-core</artifactId>
            <version>5.0.1</version>
            <type>lutece-core</type>
        </dependency>

        <!-- Specific plugins -->
        <dependency>
            <groupId>fr.paris.lutece.plugins</groupId>
            <artifactId>plugin-myplugin</artifactId>
            <version>1.2.1</version>
            <type>lutece-plugin</type>
        </dependency>
        ...

        <!-- Generic plugins -->
        <dependency>
            <groupId>fr.paris.lutece.plugins</groupId>
            <artifactId>plugin-contact</artifactId>
            <version>4.0.0</version>
            <type>lutece-plugin</type>
        </dependency>
        ...
        <dependency>
            <groupId>fr.paris.lutece.plugins</groupId>
            <artifactId>plugin-systeminfo</artifactId>
            <version>3.1.0</version>
            <type>lutece-plugin</type>
        </dependency>

    </dependencies>
</project>

IMPORTANT Pour un site en recette ou en production, ne pas utiliser des plages de version pour les dépendances. Les versions explicites doivent être utilisées. Il est conseillé de supprimer la déclaration du référentiel "Snapshot" pour s'assurer du contrôle parfait de toutes les versions des composants.

Gestion des dépendances

Plusieurs outils sont disponibles pour l'élaboration de POM de sites :

  • AppStore : Fournit des POM de sites standards intégrant les dernières versions de chacun des plugins.
  • Liste des composants : Fournit la liste de tous les composants (plugins, modules, libraries) en indiquant les dernières versions Release et Snapshot ainsi qu'un accès rapide aux évolutions et anomalies en cours.
  • Upgrade des dépendances : Fournit la liste des dépendances dans leur dernière version au format XML du POM pour une liste de plugins donnée.