3.2. Ajouter une dépendance de module explicite à un déploiement

Cette tâche montre comment ajouter une dépendance explicite à une application. On peut ajouter des dépendances explicites de module aux applications pour ajouter les classes de ces modules au chemin de classe de l'application lors du déploiement.
Certaines dépendances sont automatiquement ajoutées aux déploiements par JBoss EAP 6. Voir Section 3.8.1, « Dépendances de modules implicites » pour plus d'informations.

Conditions préalables

  1. Vous devez déjà avoir un projet de logiciel qui fonctionne, et auquel vous souhaitez ajouter une dépendance de module.
  2. Vous devez connaître le nom du module qui est ajouté comme dépendance. Voir Section 3.8.2, « Les modules inclus » pour obtenir la liste des modules statiques inclus dans JBoss EAP 6. Si le module correspond à un autre déploiement, voir Section 3.1.7, « Nommage de modules dynamiques » pour déterminer le nom du module.
Les dépendances peuvent être configurées par deux méthodes différentes :
  1. Par l'ajout d'entrées dans le fichier MANIFEST.MF du déploiement.
  2. Par l'ajout d'entrées dans le descripteur de déploiement jboss-deployment-structure.xml.

Procédure 3.1. Par l'ajout d'une configuration de dépendance à MANIFEST.MF

Les projets Maven peuvent être configurés pour créer les entrées de dépendance requises par le fichier MANIFEST.MF. Voir Section 3.3, « Générer des entrées MANIFEST.MF en utilisant Maven ».
  1. Ajouter le fichier MANIFEST.MF

    Si le projet ne possède pas de fichier MANIFEST.MF, créer un fichier nommé MANIFEST.MF. Pour une application web (WAR), ajouter ce fichier au répertoire META-INF. Pour une archive EJB (JAR), l'ajouter au répertoire META-INF.
  2. Ajouter une entrée de dépendance

    Ajouter une entrée de dépendance au fichier MANIFEST.MF avec une liste de noms de modules de dépendance séparés par des virgules.
    Dépendances : org.javassist, org.apache.velocity
  3. Option : rendre une dépendance optionnelle

    On peut rendre une dépendance optionnelle an ajoutant optional au nom du module de l'entrée de dépendance.
    Dépendances : org.javassist optional, org.apache.velocity
  4. Option : export d'une dépendance

    On peut exporter une dépendance en ajoutant export au nom du module de l'entrée de dépendance.
    Dépendences : org.javassist, org.apache.velocity export

Procédure 3.2. Ajouter une configuration de dépendance à jboss-deployment-structure.xml

  1. Ajouter jboss-deployment-structure.xml

    Si l'application n'a pas de fichier jboss-deployment-structure.xml, créer un nouveau fichier nommé jboss-deployment-structure.xml et l'ajouter au projet. Ce fichier est un fichier XML ayant l'élément racine de <jboss-deployment-structure>.
    <jboss-deployment-structure> 
    
    </jboss-deployment-structure>
    Pour une application web (WAR), ajouter ce fichier au répertoire WEB-INF. Pour une archive EJB (JAR), l'ajouter au répertoire META-INF.
  2. Ajouter une section de dépendances

    Créer un élément <deployment> à l'intérieur de la racine du document et un élément <dependencies> également.
  3. Ajouter les éléments du module

    Dans le nœud de dépendances, ajouter un élément de module pour chaque dépendance du module. Définir l'attribut name au nom du module.
    <module name="org.javassist" />
  4. Option : rendre une dépendance optionnelle

    On peut rendre une dépendance optionnelle en ajoutant l'attribut optional à l'entrée du module, avec la valeur TRUE. La valeur par défaut de cet attribut est FALSE.
    <module name="org.javassist" optional="TRUE" />
  5. Option : export d'une dépendance

    On peut exporter une dépendance en ajoutant l'attribut optional à l'entrée du module, avec la valeur TRUE. La valeur par défaut de cet attribut est FALSE.
    <module name="org.javassist" export="TRUE" />

Exemple 3.3. jboss-deployment-structure.xml avec deux dépendances

<jboss-deployment-structure>

   <deployment>

      <dependencies>
         <module name="org.javassist" />
         <module name="org.apache.velocity" export="TRUE" />
      </dependencies>

   </deployment>

</jboss-deployment-structure>
JBoss EAP 6 ajoutera les classes à partir des modules spécifiés dans le chemin de classes de l'application quand elle sera déployée.