Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
3.2. Ajouter une dépendance de module explicite à un déploiement
Conditions préalables
- Vous devez déjà avoir un projet de logiciel qui fonctionne, et auquel vous souhaitez ajouter une dépendance de module.
- Vous devez connaître le nom du module qui est ajouté comme dépendance. Voir Section 3.9.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.
- Par l'ajout d'entrées dans le fichier
MANIFEST.MF
du déploiement. - 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
MANIFEST.MF
. Voir Section 3.3, « Générer des entrées MANIFEST.MF en utilisant Maven ».
Ajouter le fichier
MANIFEST.MF
Si le projet ne possède pas de fichierMANIFEST.MF
, créer un fichier nomméMANIFEST.MF
. Pour une application web (WAR), ajouter ce fichier au répertoireMETA-INF
. Pour une archive EJB (JAR), l'ajouter au répertoireMETA-INF
.Ajouter une entrée de dépendance
Ajouter une entrée de dépendance au fichierMANIFEST.MF
avec une liste de noms de modules de dépendance séparés par des virgules.Dépendances : org.javassist, org.apache.velocity
Option : rendre une dépendance optionnelle
On peut rendre une dépendance optionnelle an ajoutantoptional
au nom du module de l'entrée de dépendance.Dépendances : org.javassist optional, org.apache.velocity
Option : export d'une dépendance
On peut exporter une dépendance en ajoutantexport
au nom du module de l'entrée de dépendance.Dépendences : org.javassist, org.apache.velocity export
En option : dépendances utilisant des annotations
Cet indicateur est requis quand la dépendance de module contient des annotations qui doivent être traitées pendant l'analyse des annotations, comme lors de la déclaration des intercepteurs EJB. Si ce n'est pas fait, un intercepteur EJB déclaré dans un module ne peut pas être utilisé en déploiement. Il y a d'autres situations impliquant des analyses d'annotation quand c'est nécessaire.Utiliser cet indicateur exige que le nodule comprenne un index Jandex. Les directives de création et d'utilisation d'un index Jandex sont incluses à la fin de cette section.
Procédure 3.2. Ajouter une configuration de dépendance à jboss-deployment-structure.xml
Ajouter
jboss-deployment-structure.xml
Si l'application n'a pas de fichierjboss-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épertoireWEB-INF
. Pour une archive EJB (JAR), l'ajouter au répertoireMETA-INF
.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.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'attributname
au nom du module.<module name="org.javassist" />
Option : rendre une dépendance optionnelle
On peut rendre une dépendance optionnelle en ajoutant l'attributoptional
à l'entrée du module, avec la valeurtrue
. La valeur par défaut de cet attribut estfalse
.<module name="org.javassist" optional="true" />
Option : export d'une dépendance
On peut exporter une dépendance en ajoutant l'attributoptional
à l'entrée du module, avec la valeurtrue
. La valeur par défaut de cet attribut estfalse
.<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>
L'indicateur d'annotations
exige que le module contienne un index Jandex. Vous pouvez créer un nouvel "index JAR" à ajouter au module. Utiliser le JAR Jandex pour créer l'index, puis l'insérer dans un nouveau fichier JAR :
Procédure 3.3.
Créer l'index
java -jar $JBOSS_HOME/modules/org/jboss/jandex/main/jandex-1.0.3.Final-redhat-1.jar $JAR_FILE
Créer un espace de travail temporaire
mkdir /tmp/META-INF
Déplacer le fichier index sur le répertoire de travail
mv $JAR_FILE.ifx /tmp/META-INF/jandex.idx
- Option 1: Inclure l'index dans un nouveau fichier JAR
jar cf index.jar -C /tmp META-INF/jandex.idx
Puis, metttez le JAR dans le répertoire de modules et modifiermodule.xml
pour y ajouter les roots de ressources. - Option 2: Ajouter l'index à une JAR existante
java -jar $JBOSS_HOME/modules/org/jboss/jandex/main/jandex-1.0.3.Final-redhat-1.jar -m $JAR_FILE
Indiquer à l'importation d'index d'utiliser l'index d'annotations
Indiquer à l'importation d'index d'utiliser l'index d'annotations, pour que le balayage des annotations permettent de les trouver.Choisissez une des méthodes ci-dessous, selon votre situation :- Si vous ajoutez une dépendance de module par MANIFEST.MF, ajouter
annotations
à la suite du nom du module.Ainsi, changer :Dependencies: test.module, other.module
enDependencies: test.module annotations, other.module
- Si vous ajoutez une dépendance de module en utilisant
jboss-deployment-structure.xml
ajouterannotations="true"
à la dépendance du module.