La structure du projet Maven pour le coeur de Lutèce est similaire à un projet WAR régulier (il faut noter que, pour des raisons historiques, les projets Lutèce n'utilisent pas la structure proposée par Maven 2. Les composants de l'application web sont placés dans webapp , et les autres sources dans src ):
lutece-core +- src | +- java | +- site | +- sql | +- conf | +- default +- webapp
Les spécifications se trouvent dans le fichier POM :
Le packaging du projet est paramétré par lutece-core :
<project> ... <groupId>fr.paris.lutece</groupId> <artifactId>lutece-core</artifactId> <packaging>lutece-core</packaging> <version>2.0.0</version>
maven-lutece-plugin est aussi déclaré dans la section build/plugins (requis pour tous les projets Lutèce):
<project> ... <build> ... <plugins> <plugin> <groupId>fr.paris.lutece</groupId> <artifactId>maven-lutece-plugin</artifactId> <extensions>true</extensions> </plugin>
Vous avez probablement remarqué le répertoire src/conf/default . Les projets Lutèce disposent d'une procédure spécifique, pour gérer les fichiers de configuration, qui est décrite ici .
Comme le plugin WAR, le plugin Lutèce fournit un goal de déploiement local :
mvn lutece:inplace
Cela a pour effet d'invoquer le mojo lutece:inplace , qui assemble l'application web directement dans le répertoire source webapp . Vous pouvez configurer le context de Tomcat sur ce répertoire, pour permettre d'effectuer rapidement des redéploiements et des tests.
Le packaging est invoqué par la commande suivante:
mvn package
Note : dans la nomenclature Maven 2, packaging fait référence à la construction d'artefacts Maven, i.e. les composants binaires qui sont stockés sur le repository Maven et réutilisés par les autres projets Maven. Cette commande ne génère pas de WAR Lutèce.
La phase package est liée au mojo lutece:package , qui va générer deux artefacts :
un JAR contenant les classes du coeur;
un ZIP contenant les composants de l'application web.
mvn lutece:assembly
Cette commande va générer deux archives :
un ZIP contenant les sources du coeur
un ZIP contenant :
un fichier WAR, d'une webapp du coeur, minimale, prête à être déployée et pouvant servir de base au déploiement de plugins (qui devront être activés dans l'interface d'administration).
les fichiers d'initialisation de la base de donnée
Note : Dans le cas d'une webapp destinée à exploiter plusieurs plugins, il est conseillé de réaliser un site Lutèce.