Travailler avec le multi projet Lutèce

Structure du projet

La structure du multi projet Maven Lutèce ce présente de la manière suivante :

lutece-multi-projet
 +- core
 |  +- src
 |  +- webapp
 |  +- pom.xml
 +- plugins
 |  +- module-xxx
 |  |  +- src
 |  |  +- webapp
 |  |  +- pom.xml
 |  +- module-xxx
 |  +- plugin-xxx
 |  |  +- src
 |  |  +- webapp
 |  |  +- pom.xml
 |  +- plugin-xxx
 |  +- ...
 |	+- pom.xml
 +- pom.xml

Les spécifications se trouvent dans le fichier POM :

  • Le packaging du projet est paramétré par pom :

    <project>
            ...
            <modelVersion>4.0.0</modelVersion>
            <groupId>fr.paris.lutece</groupId>
            <artifactId>lutece-parent-pom</artifactId>
            <name>Lutece default Project</name>
    		<url>http://dev.lutece.paris.fr/</url>
    		<packaging>pom</packaging>
    		<version>2.9-SNAPSHOT</version>
  • Les modules du multi projet sont déclarés dans la section modules , de la manière suivante :

    <project>
            ...
    		<profiles>
    		...
    		<profile>
    		    <id>multi-project</id>
    	        <modules>
    	                <module>core</module>
    	                <module>plugins/plugin-formengine</module>
    	                <module>plugins/module-formengine-etatcivil</module>
    	                <module>plugins/plugin-document</module>
    	                <module>plugins/plugin-library</module>
    	                ...
    	        </modules>
    		</profile>
    		...
    		</profiles>

Développement et tests

Comme pour les plugins Lutèce , le multi projet Lutèce fournit un goal de déploiement local :

mvn lutece:exploded -P multi-project

Cela va:

  • installer et préparer le coeur dans target/lutece du multi projet;

  • installer et préparer chaque plugin dans target/lutece du multi projet;

  • copier tous les fichiers de configuration spécifiés (voir cette page ).

Suite à ce processus, target/lutece du multi projet contient une instance de Lutèce avec le coeur et tous les plugins installé. Vous pouvez configurer le context de Tomcat sur ce répertoire pour commencer à tester.

Pour pourvoir effacer et redéployer un multi projet en une seul commande, Contrairement à  un projet classique on ne peut pas utiliser l'enchainement de commande suivant :

mvn clean lutece:exploded -P multi-project

Car cet enchainement, déploie tous les modules et fini par effacer le répertoire target du multi projet. On utilise l'enchainement de commande suivant :

mvn lutece:clean lutece:exploded -P multi-project

Afin d'éviter de recompiler et de redéployer tous les modules du multi projet, on a la possibilité de le faire seulement sur un seul module. Pour cela, ce placer directement dans le répertoire du module au niveau de son pom.xml et lancer la commande suivante :

mvn Lutece:exploded -DtestWebappDirectory="../../target/lutece"

Pour les plugins.

mvn Lutece:exploded -DtestWebappDirectory="../target/lutece"

Pour le coeur.