Frage

Ich entwickle eine Eclipse-Plugin, das eine bestimmte Version von Lucene enthält. Ich brauche einen Suchindex zu erzeugen und bereitstellen, so dass sie von einer anderen Anwendung gelesen werden, die die gleiche Version von Lucene verwendet.

Ich habe vor kurzem Eclipse 3.4 aktualisiert und der Suchindex ist jetzt nicht lesbar durch die zweite Anwendung. Ich sehe, dass Eclipse 3.4 eine neuere Version von Lucene enthält, und ich gehe davon aus, dass diese Version verwendet wird, wenn der Index zu erzeugen.

Wie kann ich feststellen, genau, welche Version von Lucene wird der Index erzeugt wird, zu der Zeit verwendet? Mein Plugin Classpath mit meiner gebündelte Version von Lucene beginnt so dass ich erwartet hätte, dass meine Version Priorität bekommen sollte.

TIA

War es hilfreich?

Lösung 2

Es scheint jetzt zu funktionieren. Für diejenigen, die interessiert sind, ist es das, was ich zu tun hatte:

  • Entfernt die Lucene 1.4.3 jar von meiner Plugin
  • Kopiert die alte Lucene-Plugin von einer älteren Version von Eclipse in der Version 3.4.
  • Gelöschte alle Abhängigkeiten im plugin.xml Assistenten. Nun sind alle Lucene-Plugins sind sichtbar.
  • Ausgewählte Version 1.4.xx und geändert, um die Eigenschaften einer max-Version einzustellen bis zu 1,5
  • hinzugefügt, um die anderen Plugin-Abhängigkeiten
  • Changed Build-Pfad: entfernt die alte Glas, hinzugefügt Plugin Abhängigkeit Lucene 1.4.3
  • Neu berechnete Run-Konfiguration. Das Lucene 1.4.3 Plugin wurde nicht automatisch so hinzugefügt, um es von Hand hinzugefügt.
  • Nun, wenn der Index erzeugt wird, Version 1.4.3 geladen ist.

Hope dies ist nützlich, um jemanden.

Andere Tipps

Sie können ClassPath Checker und ClassPath Helper versuchen.

Unter Umständen können Sie auf diese Weise genau zu ermitteln, welches Glas in Ihrer Entwicklungsumgebung verwendet werden, um diejenigen mit Gläsern in der Bereitstellungsumgebung zu vergleichen, wo Luce den Index erzeugt.

ClasPath Checker jar Konflikte:
Classpath Checker

Classpath Helper Blockierte (Verdecktes) Klassen anzuzeigen:
Classpath Helfer

Da Sie ein Eclipse-Plug-in entwickelst du in OSGi aussehen sollte. Eclipse-Plug-In sind Instanzen von OSGi-Bundles und OSGi hat ein starkes Modell für Abhängigkeiten und Versionierung zwischen Bündeln Handhabung.

Ich weiß nicht, Ihren spezifischen Code, aber wenn plane Lucene zu verwenden in meinem Plug-in-I ‚Import-Package‘ OSGi ist verwenden würde oder ‚require-Bundle‘ Funktionalität, das die Abhängigkeit zum Ausdruck bringen; Ich würde nicht die Lucene JAR in meinem Plug-in. Wenn jedes Plug-in ihrem eigenen Lucene JAR enthalten, würden Sie Platz verschwenden, aber noch wichtiger ist, mit inkompatiblen Versionen am Ende (wie Sie).

OSGI Webseite nicht der beste Ort, um Ihre OSGi Reise zu beginnen (es ist gut für die OSGi-Spezifikationen und Peter Kriens' Blog). Besser mit so etwas wie Neil Bartlett Online Buch rel="nofollow.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top