Travailler avec les plugins

Structure du projet

Comme pour le coeur, les plugins Lutèce déclarent un packaging spécique dans le fichier POM:

<project>
        ...
        <groupId>fr.paris.lutece</groupId>
        <artifactId>lutece-foobar-plugin</artifactId>
        <packaging>lutece-plugin</packaging>
        <version>1.0</version>

Un plugin Lutèce possède une dépendance sur un artefact lutece-core :

<project>
        ...
        <dependencies>
                ...
                <dependency>
                        <groupId>fr.paris.lutece</groupId>
                        <artifactId>lutece-core</artifactId>
                        <version>2.0.0</version>
                        <type>lutece-core</type>
                </dependency>

La structure des répertoires est similaire à celle du coeur, mais contient uniquement des éléments spécifiques au plugin :

  • src/java : les classes Java spécifiques au plugin;

  • src/conf/default : les fichiers de configuration spécifiques au plugin (version par defaut);

  • webapp : Les composants de l'application web spécifiques au plugin.

Developpement et tests

pour tester votre plugin, appelez le goal lutece:exploded

mvn lutece:exploded

Cela va:

  • récupérer l'artefact lutece-core du repository Maven;

  • installer et préparer la version du coeur dans target/lutece ;

  • copier les composants spécifiques au plugin vers ce répertoire préparé;

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

Suite à ce processus, target/lutece contient une instance de Lutèce avec votre plugin installé. Vous pouvez configurer le context de Tomcat sur ce répertoire pour commencer à tester.

Packaging

mvn lutece:package

Note : Cette commande est équivalente à mvn package

Le packaging est le même que celui pour le coeur. mvn package va générer :

  • un JAR contenant les classes spécifiques au plugin;

  • un ZIP contenant les composants de l'application web, spécifiques au plugin.

Génération d'un distribution du plugin

mvn lutece:assembly

Cette commande va générer deux archives :

  • un ZIP contenant les sources du plugin

  • un ZIP contenant une version binaire du plugin pouvant être collée sur une webapp existante (le plugin devra être activé dans l'interface d'administration)