Configuration de la génération
Le processus de génération est piloté par une configuration de génération. La configuration de
la génération d'un plug-in, fragment ou dispositif individuel figure dans le fichier build.properties associé.
Les assistants de création de projet PDE génèrent le fichier
build.properties au moment de la création des projets de plug-in. Le fichier contient des informations sur la génération des dossiers
source dans des fichiers JAR. Ces informations peuvent être indirectement mises à jour dans la page d'exécution de l'éditeur de manifeste. Elles
peuvent aussi être directement modifiées à l'aide de l'éditeur approprié.
PDE intègre une éditeur simple, doté de vues formulaire et source, permettant de modifier le fichier build.properties.
Le fichier lui-même obéit au format de propriétés Java. Vous devez fournir un certain nombre de clés et les valeurs qui leur sont associées. Les valeurs sont séparées les unes des autres par une virgule.
Propriétés communes
- bin.includes - liste des fichiers qui seront inclus dans la version binaire du plug-in généré
- bin.excludes - liste les fichiers à exclure de la génération
binaire
- qualifier - lorsque le numéro de version de l'élément se termine par .qualifier, indique la valeurdevant remplacer ".qualifier". Cette propriété peut avoir la valeur context, <value> ou none.
La valeur context génère une date fondée sur la date système ou utilise les balises CVS en cas de génération automatisée. Value correspond à une valeur réelle. La valeur none supprime ".qualifier". Si la propriété est omise, la valeur context est utilisé.
- custom=true - indique que le script de génération a été créé manuellement et non automatiquement. Aucune autre valeur n'est consultée.
Propriétés spécifiques des plug-ins
- source.<library> - répertorie les dossiers source qui seront compilés (par exemple, source.xyz.jar=src/, src-ant/).
Si la bibliothèque est spécifiée dans le fichier plugin.xml ou manifest.mf, cette propriété doit avoir la même valeur ;
- output.<library> - indique le dossier de sortie devant recevoir le résultat de la génération ;
- source.<library> - répertorie les fichiers que le compilateur ne doit pas copier dans la bibliothèque ;
- extra.<library> - chemins d'accès aux classes supplémentaires utilisés pour exécuter une génération automatique. Les
chemins d'accès aux classes peuvent être des chemins relatifs ou des URL
de plateforme faisant référence à des plug-in et des fragments de votre
environnement de développement (par ex. ../someplugin/xyz.jar,
platform:/plugins/org.apache.ant/ant.jar). Il est conseillé d'utiliser des URL de plate-forme plutôt que des chemins relatifs ;
- manifest.<library> - indique le fichier qui sera utilisé comme manifeste pour la bibliothèque. Ce fichier doit être dans l'un des dossiers source utilisés comme entrée du fichier JAR.
- src.includes - liste les fichiers à inclure dans la
génération source
- src.excludes - liste les fichiers à exclure dans la
génération source
- jars.extra.classpath - (déconseillé) action identique à celle de la propriété extra.<library>, sauf que les entrées s'appliquent à toutes les bibliothèques ;
- jars.compile.order - définit l'ordre dans lequel les fichiers JAR doivent être compilés (lorsqu'il existe plusieurs bibliothèques).
Les valeurs définies pour ces clés qui se terminent par "includes" ou "excludes" sont présentées comme des "masques" Ant. Les formats standard produisent les résultats escomptés. Par exemple, "*.jar" désigne tous
les fichiers jar résidant dans le répertoire de niveau supérieur. Par
défaut, les masques ne sont pas imbriqués profondément. Pour décrire
tous les fichiers Java, par exemple, vous devez utiliser le masque
"**/*.java". Le masque "**" englobe tous les
niveaux de répertoire. De la même façon, pour décrire des
sous-arborescences entières, utilisez "xyz/".
Propriétés spécifiques des dispositifs
- root - répertorie les fichiers et les dossiers devant être inclus à la racine du produit. Valeurs prises en charge :
- <nomDossier> - chemin relatif d'un dossier à copier ;
- file:<nomFichier> - chemin relatif d'un fichier à copier ;
- absolute:<nomDossier> - chemin absolu d'un dossier à copier ;
- absolute:file:<nomFichier> - chemin absolu d'un fichier à copier ;
- root.<config> - répertorie les fichiers et les dossiers devant être inclus à la racine du produit lors de la génération pour la configuration indiquée. config se compose des trois (3) segments d'une configuration, séparés par un point ;
- root.permissions.<permissionValue> - répertorie les fichiers et dossiers dans la commande chmod en leur attribuant la valeur donnée. Toute référence à un dossier doit se terminer par '/' ;
- root.permissions.<config>.<permissionValue> - répertorie les fichiers et dossiers dans la commande chmod en leur attribuant la valeur donnée pour une configuration spécifique. Toute référence à un dossier doit se terminer par '/' ;
- root.link - répertorie par paires (séparées par une virgule) les fichiers et les dossiers devant être liés de manière symbolique. La première entrée indique la source (cible en langage Unix) et la deuxième, le nom du lien ;
- root.link.<config> - liste de paires de fichiers et de dossiers, séparées par une virgule, devant être liés de manière symoblique pour une configuration spécifique. La première entrée indique la source (cible en langage Unix) et la deuxième, le nom du lien ;
- generate.feature@<featureId> - indique que le dispositif source featureId correspondra à celui indiqué comme valeur pour cette propriété.
Les valeurs spécifiées après la première virgule indiquent les éléments à extraire du référentiel ;
- generate.plugin@<pluginId> - indique que le plug-in source pluginId correspondra à celui indiqué comme valeur pour cette propriété.
L'exemple suivant est extrait du fichier build.properties du dispositif org.eclipse.platform.
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*