Eclipse: Comment s'assurer que le fichier jar du plug-in est prioritaire par rapport aux autres versions?

StackOverflow https://stackoverflow.com/questions/460872

Question

Je développe un plugin eclipse qui contient une version spécifique de Lucene. J'ai besoin de générer un index de recherche et de le déployer pour qu'il puisse être lu par une autre application utilisant la même version de Lucene.

J'ai récemment mis à niveau eclipse vers 3.4 et l'index de recherche n'est plus lisible par la deuxième application. Je vois que eclipse 3.4 contient une version plus récente de Lucene et je suppose que cette version est utilisée lors de la génération de l'index.

Comment puis-je déterminer exactement quelle version de Lucene est utilisée au moment de la génération de l'index? Mon classpath de plug-in commence par la version fournie de Lucene. Je m'attendrais donc à ce que ma version soit prioritaire.

TIA

Était-ce utile?

La solution 2

semble fonctionner maintenant. Pour ceux qui sont intéressés, voici ce que je devais faire:

  • Suppression du fichier Lucene 1.4.3 dans mon plugin
  • Copiez l'ancien plug-in Lucene d'une ancienne version d'Eclipse vers la version 3.4.
  • Suppression de toutes les dépendances dans l'assistant plugin.xml. Maintenant, tous les plugins Lucene sont visibles.
  • Version sélectionnée 1.4.xx et modification des propriétés pour définir une version maximale de 1,5
  • Ajout des autres dépendances du plugin
  • Chemin de génération modifié: ancien fichier jar supprimé, dépendance du plugin ajoutée Lucene 1.4.3
  • Configuration d'exécution recalculée. Le plugin Lucene 1.4.3 n’a pas été ajouté automatiquement, c’est donc ajouté à la main.
  • Maintenant que l'index est généré, la version 1.4.3 est chargée.

J'espère que cela sera utile à quelqu'un.

Autres conseils

Vous pouvez vouloir donner ClassPath Checker et ClassPath Helper à essayer.

Vous pourrez peut-être déterminer avec précision quels fichiers jar sont utilisés dans votre environnement de développement afin de les comparer aux fichiers jar présents dans votre environnement de déploiement, où Luce génère l'index.

Conflits de fichiers journaux ClasPath Checker:
vérificateur de chemin d'accès aux classes

Classpath Helper Blocked (Obscured) Classes view:
assistant de chemin de classe

Puisque vous développez un plug-in Eclipse, vous devriez vous pencher sur OSGi. Les plug-ins Eclipse sont des instances d’ensembles OSGi et OSGi dispose d’un modèle solide pour la gestion des dépendances et la gestion des versions entre les ensembles.

Je ne connais pas votre code spécifique, mais si j'avais l'intention d'utiliser Lucene dans mon plug-in, j'utiliserais les fonctionnalités "Import-Package" ou "Require-Bundle" d'OSGi pour exprimer la dépendance. Je n’inclurais pas le fichier JAR Lucene dans mon plug-in. Si chaque plug-in incluait son propre fichier JAR Lucene, vous perdriez de l'espace, mais plus important encore, vous vous retrouveriez avec des versions incompatibles (comme vous l'avez fait).

Le site Web d'OSGI n'est pas le meilleur endroit pour commencer votre aventure OSGi (bon pour les spécifications OSGi et Peter Le blog de Kriens). Mieux vaut commencer par quelque chose comme le livre en ligne de Neil Bartlett.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top