Travailler avec le coeur

Structure du projet

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 .

Developpement et tests

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.

Packaging

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.

Génération d'une distribution du coeur

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.