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