/ / Lucene NoSuchMethodError in Eclipse Plugin - java, eclipse, eclipse-plugin, lucene, nosuchmethoderror

Lucene NoSuchMethodError in Eclipse Plugin - java, eclipse, eclipse-plugin, lucene, nosuchmethoderror

Modifica: questa domanda è stata risolta. Per qualche ragione c'era davvero un'altra versione dei file di Lucene nella directory dei plugin di Eclipse.

Sto cercando di utilizzare Lucene in un plug-in Eclipse. Si suppone che i metodi vengano chiamati da un altro plug-in.

Funziona benissimo fintanto che eseguo il progetto come applicazione Java. Ma quando provo a chiamare un metodo dall'altro plugin, ottengo il seguente errore:

java.lang.NoSuchMethodError: org.apache.lucene.store.FSDirectory.open(Ljava/nio/file/Path;)Lorg/apache/lucene/store/FSDirectory;

Ovviamente il metodo esiste davvero perché funziona perfettamente come un'applicazione Java. Quindi penso di dover fare qualcosa di specifico del plugin per farlo funzionare.

Ho aggiunto i necessari vasi di Lucene(lucene-analysers-common-5.3.1 e lucene-core-5.3.1) alle dipendenze del mio plugin. Ho anche aggiunto org.apache.lucene.store ai pacchetti esportati del mio plugin (come suggerito da Eclipse, quindi il plugin che chiama il metodo può intercettare LockObtainFailedException). Questo è tutto ciò che ho fatto riguardo a Lucene.

Qualcuno può dirmi cosa ho dimenticato / non so? (Se non è ovvio, sono completamente nuovo ai plugin di Eclipse)

Modificare: Ho anche provato ad aggiungere i jar direttamente al plugin che sta chiamando il metodo Lucene (aggiungendo i percorsi a Bundle-ClassPath nel manifest). Non ha cambiato nulla.

Ho anche letto che un tale problema può verificarsi a causa di un'altra versione di Lucene che si trova da qualche parte nel mio classpath, e mi sono assicurato che non fosse così.

risposte:

1 per risposta № 1

Per qualche ragione, c'era davvero un'altra (più vecchia) versione dei file di Lucene nella directory dei plugin di Eclipse. Questi erano il problema. Li ho cancellati e rimosso il tag della versione nel manifest.