2014-09-25 12 views
5

Sto utilizzando la versione più recente (2.8.0) del plug-in Eclipse-Groovy fornito con groovy-all-2.1.5.jar. Ho aggiunto al mio progetto Guice Groovy, e quando vado a correre loro dall'interno di Eclipse ottengo il seguente errore nel output della console:Come modificare il plugin Eclipse-Groovy Librerie Groovy?

Caught: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling 
java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling 
    at net.me.myapp.utils.restclient.RestClient.<init>(RestClient.groovy:57) 
    at net.me.myapp.inject.UserServiceClientModule.configure(UserServiceClientModule.groovy:34) 
    at com.google.inject.AbstractModule.configure(AbstractModule.java:59) 
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223) 
    at com.google.inject.spi.Elements.getElements(Elements.java:101) 
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133) 
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103) 
    at com.google.inject.Guice.createInjector(Guice.java:95) 
    at com.google.inject.Guice.createInjector(Guice.java:72) 
    at com.google.inject.Guice.createInjector(Guice.java:62) 
    at net.me.myapp.UserServiceClient.<init>(UserServiceClient.groovy:37) 
    at net.me.myapp.UserServiceClient.main(UserServiceClient.groovy:45) 
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.typehandling.ShortTypeHandling 
    ... 12 more 

Secondo this answer è perché ShortTypeHandling non è stato aggiunto fino 2.3.x. Quindi vorrei ora allegare groovy-all-2.3.3.jar al classpath del mio progetto Eclipse.

Il problema è che non ho le autorizzazioni di modifica per modificare la libreria che utilizza la libreria Groovy Libraries sotto il cofano. E quando aggiungo manualmente il JAR 2.3.3 al mio percorso di costruzione, ottengo il seguente errore:

Caught: java.lang.ExceptionInInitializerError 
java.lang.ExceptionInInitializerError 
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.1.5 and you are trying to load version 2.3.3 

Quali sono le mie opzioni?

risposta

6

Le versioni di Groovy-eclipse hanno i propri compilatori and are "locked" to them. È possibile modificare le versioni in qualsiasi cosa sia elencata in Finestra> Preferenze> Groovy> Compilatori, ma, AFAIK, non è possibile modificare una versione arbitraria del compilatore semplicemente cambiando il jar groovy-all nell'intestino della directory del plugin.

groovy-eclipse compiler version change

È possibile installare nuove versioni del compilatore utilizzando il update site o eclissare mercato


Aggiornamento: installare ulteriori versioni del compilatore tramite Aiuto> installare nuovo software, selezionare sito di aggiornamento Groovy ed espandere il Extra Groovy Compilers sessione:

enter image description here

Nota sto utilizzando il sito di aggiornamento snapshot, perché i like to live dangerously.

+3

Grazie @Will P (+1) - Penso che potresti aver trovato la soluzione qui, tuttavia nella mia eclissi, non vedo un pulsante "* Passa a 2.3.3.xx ... *"/opzione . Ho solo i pulsanti per 1.8.7 e 2.0.7, che non mi aiuta perché 'ShortTypeHandling' non è stato introdotto fino alla 2.3.x. ** Sai come aggiungere altre versioni alle opzioni * Impostazioni del Groovy Compiler *? ** Grazie ancora! – smeeb

+0

@smeeb Ho lo stesso problema. Ho installato la funzione 2.4 ma non c'è alcun pulsante per passare ad essa nelle mie preferenze. hai mai risolto questo? Grazie. – Chris

+0

In realtà, ho trovato una risposta che funziona per me: aggiungi -clean al file eclipse.ini. Grazie a @Lari Hotari (consultare https://stackoverflow.com/questions/21413003/groovy-compiler-mismatch-after-installation). – Chris

Problemi correlati