Exporter un générateur en tant que plugin
Résumé
Ce document explique comment exporter un module de génération en tant que Plug-in. Le module peut ensuite être déployé sur n'importe quelle instance d'Eclipse.
Il détaille les différentes phases nécessaires à cet export et présente aussi l'utilisation du Module Launcher qui permet à l'utilisateur final de mettre en place un projet de génération en quelques clics.
Cédric Brun, Obeo (France)
Tous les projets de génération Acceleo sont également des projets de Plug-in Eclipse, ainsi ils disposent des fichiers de configuration standards pour un Plug-in : le fichier Manifest.mf dans le répertoire meta-inf et le fichier plugin.xml
![]() |
Pour qu'un module Acceleo soit déployable en tant que plugin il faut qu'il étende le point d'extension fr.obeo.acceleo.gen.module.
Pour effectuer ceci éditez le fichier Manifest.mf, cliquez sur l'onglet Extensions puis sur Add....
![]() |
Choisissez alors le point d'extension fr.obeo.acceleo.gen.module puis cliquez sur Finish.
Créez ensuite un sous-élément module.
![]() |
Les paramètres du modules ne sont pertinents que dans le cadre d'une utilisation du Module Launcher (voir plus loin). Si vous ne souhaitez que pouvoir exporter le module il n'est pas nécessaire de configurer ces paramètres.
![]() |
![]() |
Les fichiers nécessaires au module de génération doivent tous êtres exportés, vérifiez dans l'onglet build qu'ils seront tous inclus dans le plugin (en particulier les fichier .mt et le fichier plugin.xml.
L'export d'un module suit la même procédure que l'export d'un plugin Eclipse standard. Cliquez avec le bouton droit sur votre projet et choisissez Export... puis Deployable plug-ins and fragments.
![]() |
Cliquez sur "Next"
![]() |
![]() |
Lors du clic sur Finish Eclipse compilera le plugin et créera un fichier Jar dans le répertoire de destination.
![]() |
Ce plugin peut ensuite être installé dans n'importe quelle instance d'Eclipse en le copiant dans le répertoire plugins.
Moyennant un léger paramétrage supplémentaire il est possible de disposer de l'environnement d'initialisation des projets, le Module Launcher.
Pour que votre module soit proposé dans l'interface du Module Launcher il doit remplir certaines conditions:
Créez donc dans un premier temps un fichier .chain lançant votre génération et placez-le dans un répertoire de votre générateur (ici nous avons choisi default).
![]() |
Définissez ensuite les paramètres nécessaires à votre génération en éditant l'attribut Parameter Files de l'objet racine du .chain. Ici nous définissons trois paramètres, le modèle d'entrée, le répertoire de sortie et le fichier de log.
![]() |
Il faut maintenant spécifier ces paramètres dans le point d'extension afin que le Module Launcher les demandes.
Éditez le fichier plugin.xml et allez dans l'onglet Extensions. Renseignez-y les valeurs nécessaires pour le Module, c'est à dire le titre, la description du module, le chemin vers le fichiers .chain générique et enfin la catégorie du module.
|
Il faut maintenant spécifier les paramètres du .chain. Pour ce faire cliquez-droit sur le Module dans l'éditeur d'extension et ajoutez le nombre de fils nécessaires pour les paramètres.
|
Définissez ainsi chaque paramètre de votre .chain, vous pouvez définir sa description, son type (fichier/répértoire ou projet), l'extension des fichiers et aussi définir un fichier par défaut
|
|
C'est bien l'ordre de déclaration qui garantit que les paramètres du fichier .chain vont être substitués avec les valeurs de l'utilisateur.
Et voilà ! votre générateur est désormais utilisable en quelques clics, vous pouvez l'exporter en tant que plugin et le tester dans une nouvelle instance d'Eclipse. N'oubliez pas de vérifier les paramètres d'export dans l'onglet build de l'éditeur, en particulier le fait que les fichiers servant à l'initialisation soient bien exportés.
|
Reportez-vous aux projets MindMap et Python2Ecore du dépôt de modules pour consulter un exemple fonctionnel.