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.MFdu 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.MFSi 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.MFavec une liste de noms de modules de dépendance séparés par des virgules.Dépendances : org.javassist, org.apache.velocity
Dépendances : org.javassist, org.apache.velocityCopy to Clipboard Copied! Toggle word wrap Toggle overflow Option : rendre une dépendance optionnelle
On peut rendre une dépendance optionnelle an ajoutantoptionalau nom du module de l'entrée de dépendance.Dépendances : org.javassist optional, org.apache.velocity
Dépendances : org.javassist optional, org.apache.velocityCopy to Clipboard Copied! Toggle word wrap Toggle overflow Option : export d'une dépendance
On peut exporter une dépendance en ajoutantexportau nom du module de l'entrée de dépendance.Dépendences : org.javassist, org.apache.velocity export
Dépendences : org.javassist, org.apache.velocity exportCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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.xmlSi l'application n'a pas de fichierjboss-deployment-structure.xml, créer un nouveau fichier nomméjboss-deployment-structure.xmlet 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>
<jboss-deployment-structure> </jboss-deployment-structure>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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'attributnameau nom du module.<module name="org.javassist" />
<module name="org.javassist" />Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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" />
<module name="org.javassist" optional="true" />Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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" />
<module name="org.javassist" export="true" />Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Exemple 3.3. jboss-deployment-structure.xml avec deux dépendances
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
java -jar $JBOSS_HOME/modules/org/jboss/jandex/main/jandex-1.0.3.Final-redhat-1.jar $JAR_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow Créer un espace de travail temporaire
mkdir /tmp/META-INF
mkdir /tmp/META-INFCopy to Clipboard Copied! Toggle word wrap Toggle overflow Déplacer le fichier index sur le répertoire de travail
mv $JAR_FILE.ifx /tmp/META-INF/jandex.idx
mv $JAR_FILE.ifx /tmp/META-INF/jandex.idxCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Option 1: Inclure l'index dans un nouveau fichier JAR
jar cf index.jar -C /tmp META-INF/jandex.idx
jar cf index.jar -C /tmp META-INF/jandex.idxCopy to Clipboard Copied! Toggle word wrap Toggle overflow Puis, metttez le JAR dans le répertoire de modules et modifiermodule.xmlpour 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
java -jar $JBOSS_HOME/modules/org/jboss/jandex/main/jandex-1.0.3.Final-redhat-1.jar -m $JAR_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow
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
Dependencies: test.module, other.moduleCopy to Clipboard Copied! Toggle word wrap Toggle overflow enDependencies: test.module annotations, other.module
Dependencies: test.module annotations, other.moduleCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Si vous ajoutez une dépendance de module en utilisant
jboss-deployment-structure.xmlajouterannotations="true"à la dépendance du module.