Domanda

Sto sviluppando un plugin eclipse che contiene una versione specifica di Lucene. Devo generare un indice di ricerca e distribuirlo in modo che possa essere letto da un'altra applicazione che utilizza la stessa versione di Lucene.

Di recente ho aggiornato eclipse a 3.4 e l'indice di ricerca non è ora leggibile dalla seconda applicazione. Vedo che eclipse 3.4 contiene una versione più recente di Lucene e presumo che questa versione venga utilizzata durante la generazione dell'indice.

Come posso determinare esattamente quale versione di Lucene viene utilizzata al momento della generazione dell'indice? Il mio percorso di classe del plugin inizia con la mia versione in bundle di Lucene, quindi mi sarei aspettato che la mia versione avesse la priorità.

TIA

È stato utile?

Soluzione 2

Sembra funzionare ora. Per quelli di voi che sono interessati, questo è quello che dovevo fare:

  • Rimosso il vaso Lucene 1.4.3 dal mio plugin
  • Copia il vecchio plugin Lucene da una versione precedente di eclipse nella versione 3.4.
  • Eliminate tutte le dipendenze nella procedura guidata plugin.xml. Ora tutti i plugin di Lucene sono visibili.
  • È stata selezionata la versione 1.4.xx e sono state modificate le proprietà per impostare una versione massima fino a 1.5
  • Aggiunte le altre dipendenze del plugin
  • Percorso di build modificato: rimosso vecchio jar, aggiunta dipendenza plug-in Lucene 1.4.3
  • Configurazione di ricalcolo della corsa. Il plugin Lucene 1.4.3 non è stato aggiunto automaticamente, quindi è stato aggiunto manualmente.
  • Ora quando viene generato l'indice, viene caricata la versione 1.4.3.

Spero che questo sia utile a qualcuno.

Altri suggerimenti

Potresti voler ClassPath Checker e ClassPath Helper una prova.

Potresti essere in questo modo in grado di accertare con precisione quale vaso viene utilizzato nel tuo ambiente di sviluppo, al fine di confrontare quelli con i barattoli presenti nel tuo ambiente di distribuzione, dove Luce genera l'indice.

Conflitti del vaso di ClasPath Checker:
classpath checker

Visualizzazione classi Classpath Helper Block (Obscured):
classpath helper

Dato che stai sviluppando un plug-in Eclipse, dovresti esaminare OSGi. I plug-in Eclipse sono istanze di bundle OSGi e OSGi ha un modello forte per la gestione delle dipendenze e il controllo delle versioni tra i bundle.

Non conosco il tuo codice specifico, ma se avessi intenzione di usare Lucene nel mio plug-in, avrei usato la funzionalità 'Import-Package' o 'Require-Bundle' di OSGi per esprimere la dipendenza; Non includerei il Lucene JAR nel mio plug-in. Se ogni plug-in includesse il proprio Lucene JAR, sprecheresti spazio, ma, soprattutto, finirai con versioni incompatibili (come hai fatto tu).

il sito web dell'OSGI non è il posto migliore per iniziare il tuo viaggio OSGi (è buono per le specifiche OSGi e Peter Blog di Kriens). Meglio iniziare con qualcosa di simile al libro . Di Neil Bartlett online .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top