Bonjour,
Afin de mettre au point un systeme de mise à jour par svn de mon plugin, j'aimerai connaître le chemin du repertoire où se situe le (ou les) jars de mon plugin (par exemple "/c:/program files/eclipse/plugins/").
Merci d'avance.
Bonjour,
Afin de mettre au point un systeme de mise à jour par svn de mon plugin, j'aimerai connaître le chemin du repertoire où se situe le (ou les) jars de mon plugin (par exemple "/c:/program files/eclipse/plugins/").
Merci d'avance.
Best Web Design Software ever - http://tweakstyle.com
Salut,
Je ne suis pas sûr d'avoir bien compris, tu souhaites connaitre le répertoire des sources de ton plugin ou le répertoire où sont installé tes plugins ?
Je voudrais connaitre le repertoire ou est installé mon plugin.
Best Web Design Software ever - http://tweakstyle.com
Bonsoir,
pour recuperer le chemin de ton plugin il faut que tu utilises la méthode getStateLocation
de ton instance plugin. cette méthode retourne un IPath.
Voici un exemple qui recupere sous forme de string le chemin ou est
installé ton plugin :
ou plugin est de type org.eclipse.core.runtime.Plugin
Code : Sélectionner tout - Visualiser dans une fenêtre à part plugin.getStateLocation().toFile().getAbsolutePath();
Angelo
j'ai déja essayé cette méthode mais malheureusement ca ne renvoie pas le chemin du plugin mais celui d'un repertoire dans les metadata du workspace ou mon plugin peut mettre des fichiers à loisir. (cad workspace\.metadata\.plugins\mon.nom.de.plugin)
extrait de la javadoc :
Moi j'ai besoin du répertoire ou est placé mon plugin (cad généralement eclipse\plugins\).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 * Returns the location in the local file system of the * plug-in state area for this plug-in. * If the plug-in state area did not exist prior to this call, * it is created. * <p> * The plug-in state area is a file directory within the * platform's metadata area where a plug-in is free to create files. * The content and structure of this area is defined by the plug-in, * and the particular plug-in is solely responsible for any files * it puts there. It is recommended for plug-in preference settings and * other configuration parameters.
C'est pour mettre en place un systeme de configuration/mise à jour de mon plugin à partir de fichiers présent sur un repository svn.
Merci quand meme pour ton aide.
Best Web Design Software ever - http://tweakstyle.com
j'ai trouvé ca : plugin.getBundle().getLocation() qui renvoie quelque chose qui ressemble à ce que je cherche mais je ne sais pas si ca renvoie toujours la bonne valeur.
Best Web Design Software ever - http://tweakstyle.com
Je t'envoie la fonction que j'utilise pour recuperer le chemin a partir de mon plugin :
Pur avoir le chemin de ton plugin tu faits
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 /** * Return the real path of <code>fileSource</code> which is stored into * the plugin. * * @param plugin * @param fileSource * @return */ public static String getRealPath(Plugin plugin, String sourceFile) { try { //plugin.getStateLocation().toFile().getAbsolutePath(); URL urlPlatform = plugin.getDescriptor().getInstallURL(); URL fileInPluginURL = new URL(urlPlatform, sourceFile); URL localFileInPluginURL = Platform.asLocalURL(fileInPluginURL); String path = localFileInPluginURL.getPath().toString(); if (path.startsWith("/")) { path = path.substring(1, path.length()); } return path; } catch (Exception e) { return null; } }
le probleme c'est que le code fait appel a ds methods deprecated.
Code : Sélectionner tout - Visualiser dans une fenêtre à part PluginUtils.getRealPath(AkrogenPlugin.getDefault(), "")
Angelo
merci pour ton code.
Best Web Design Software ever - http://tweakstyle.com
Apparament, depuis eclipse 3.0, les informations ne sont plus stockés dans le Plugin mais dans le Bundle associé.
Je pense que ta méthode peut se réecrire sans utiliser de méthode déprécié comme ca :
en tout cas ca marche pour moi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public static String getRealPath(Plugin plugin, String sourceFile) { try { Bundle bundle = plugin.getBundle(); URL entryUrl = bundle.getEntry(sourceFile); URL fileUrl = FileLocator.toFileURL(entryUrl); String path = fileUrl.toString(); if (path.startsWith("/")) { path = path.substring(1); } return path; } catch (IOException e) { return null; } }
Si tu accède à d'autres plugin avec la méthode dépréciée Platform.getPlugin(String id) : Plugin, alors tu peux maintenant y accéder avec la méthode Platform.getBundle(String id) : Bundle et modifier ta méthode getRealPath pour prendre en paramêtre un Bundle.
Au passage, le deuxième argument de la méthode substring n'est pas nécessaire.
Best Web Design Software ever - http://tweakstyle.com
Bonjour merci
beaucoup pour ton code ameliroe.
Je vais tester ca tout de suite et si ca merche pour mon cas
je l'utiliserais.
Angelo
Oups, je m'était trompé dans le code, c'est pas la methode toFileURL qu'il faut utiliser mais resolve.
Et il faut faire un peu plus de traitement ensuite car la méthode FileLocator.resolve(URL url) renvoie une url du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part file:C:\test\eclipse\plugins\com.mon.plugin_1.0.0.jar!/
Best Web Design Software ever - http://tweakstyle.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager