Etapes de la génération des dispositifs et des plug-ins
La version 3.2 permet désormais à un dispositif ou un plug-in de fournir des étapes personnalisées pour sa propre génération. Ces étapes personnalisées peuvent être utilisées pour, par exemple, l'instrumentation BCI (Byte-Code Implementation) après la compilation, l'indexation des fichiers d'aide pour la documentation, ou la copie de fichiers supplémentaires dans le bundle.
Pour utiliser des cibles personnalisées, un dispositif ou un plug-in doit définir la propriété customBuildCallbacks dans son fichier build.properties ; la valeur de cette propriété correspond à l'emplacement d'un fichier xml, relatif à la racine du dispositif/plug-in, contenant les cibles personnalisées. Les modèles
customBuildCallbacks.xml
contenant les cibles personnalisées prises en charge sont disponibles respectivement dans org.eclipse.pde.build/templates/plugins et
org.eclipse.pde.build/templates/features. Ces modèles peuvent être copiés dans le dispositif/plug-in et modifiés en fonction des besoins. Les cibles personnalisées sont appelées en utilisant la tâche subant avec failonerror="false" pour que la génération se poursuive si le fichier xml personnalisé ne contient pas une cible donnée ou qu'une erreur se produit.
Plug-in
Le fichier build.xml généré qui crée un plug-in contient plusieurs cibles qui exécutent des tâches spécifiques. La compilation PDE permet au plug-in
de fournir des pré et post-cibles personnalisées qui sont appelées, et après des tâches spécifiques. Outre les propriétés ant qui peuvent être déjà définies, chaque cible personnalisée peut également recevoir des propriétés spécifiques. Les cibles personnalisées suivantes prennent en charge les rappels personnalisés :
- build.jars : la cible
build.jars appelle chaque cible de compilation générée pour le bundle. Elle prend en charge les cibles pre.build.jars et post.build.jars qui sont appelées avant et après l'appel de toutes les cibles de compilation.
Les pré et post cibles sont fournies avec la propriété build.result.folder qui correspond au dossier vers lequel le résultat de la génération est copiée.
- Cibles de compilation :
Le fichier build.xml définit une cible de compilation pour chaque fichier JAR généré (par exemple, @dot pour le bundle lui-même, ou library.jar). Chaque cible de compilation
prend en charge 3 rappels personnalisés :
- pre.<compilation target> :
appelé avant la compilation des fichiers source. Il est fourni avec les propriétés suivantes :
- target.folder : dossier dans lequel les fichiers de classe doivent être stockés
- source.folder<N> : dossier(s) source(s) contenant la source à compiler. (ex. : source.folder1, source.folder2,
etc).
- <compilation target>.classpath : référence à la structure de chemin ant contenant le chemin d'accès aux classes utilisé dans la compilation. (exe. : @dot.classpath, library.jar.classpath)
- post.compile.<compilation
target> : appelé après la compilation du source, mais avant le regroupement des fichiers de classe dans un fichier JAR ou leur copie dans un dossier de résultat de génération.
Fourni avec les mêmes propriétés que la cible pre.<compilation
target>.
- post.<compilation target> :
Appelé à la fin de la cible de compilation après la copie des résultats vers le dossier des résultats de génération. Fourni avec les propriétés suivantes :
- jar.Location : fichier ou dossier JAR contenant les résultats de la compilation.
- <compilation target>.classpath : référence à la structure de chemin ant qui contient le chemin d'accès aux classes utilisé dans la compilation.
- build.sources : cette cible génère les zips source de chaque cible de compilation. Elle prend en charge les cibles pre.build.sources
et post.build.sources. Ces deux cibles sont fournies avec la propriété
build.result.folder qui correspond au dossier vers lequel les fichiers zip sont copiés.
- gather.bin.parts :
cette cible copie le résultat de la génération (à savoir les fichiers JAR et les autres fichiers inclus dans le bundle, vers le répertoire de destination final.
Il s'agit également de la cible dans laquelle les qualificateurs de versions sont remplacés dans le fichier manifeste (voir Qualificateurs de versions). Elle prend en charge les cibles pre.gather.bin.parts
et post.gather.bin.parts. Deux propriétés sont fournies aux pré et post-cibles :
- build.result.folder : dossier contenant les résultats de la génération
- target.folder : dossier de destination vers lequel les résultats de la génération et le contenu du bundle sont copiés.
- gather.sources : cette cible collecte les fichiers zip source du bundle. Elle prend en charge les cibles pre.gather.sources et post.gather.sources.
Les pré et post-cibles sont fournies avec la propriétés target.folder qui correspond au dossier vers lequel les sources sont copiées.
- gather.logs : cette cible collecte les fichiers journaux de la génération. Elle prend en charge pre.gather.logs et post.gather.logs. Les pré et post-cibles sont fournies avec destination.temp.folder qui correspond au dossier temporaire vers lequel les fichiers journaux sont copiés.
- clean : cette cible effectue un nettoyage. Elle prend en charge les cibles pre.clean
et post.clean.
Les pré et post-cibles ont les propriétés suivantes :
- plugin.destination : dossier vers lequel le bundle final a été copié.
- build.result.folder : dossier vers lequel les résultats de la génération ont été copiés.
- temp.folder : dossier temporaire dans lequel les résultats ont été envoyés avant d'être copiés vers la destination finale.
Dispositifs
Le fichier build.xml généré pour les dispositifs prend uniquement en charge les rappels de génération personnalisés pour la cible gather.bin.parts. Cette cible appelle la cible gather.bin.parts de tous les dispositifs et plug-ins inclus. Elle prend en charge pre.gather.bin.parts et post.gather.bin.parts. Les deux cibles sont fournies avec les propriétés suivantes :
- destination.temp.folder : répertoire vers lequel les plugins sont copiés.
- feature.directory : répertoire vers lequel les fichiers du dispositif sont copiés.