2012-07-31 14 views
12

Niedawno pobrałem Eclipse Juno i zainstalowałem najnowszą wtyczkę Groovy.Wyjątek java.lang.IncompatibleClassChangeError podczas działania Groovy w Eclipse Juno

Oto jak wygląda mój plik Groovy.

package groovy_support 

class TimePass { 
static void main(def args){ 
    println "Hello World" 
} 
} 

Gdy ten z obu moich poprzednich wersji Eclipse (Indigo) lub z linii poleceń, to działa. Jednak w Eclipse Juno zarzuca on następujący wyjątek w konsoli Eclipse.

Caught: java.lang.IncompatibleClassChangeError: Found class org.objectweb.asm.ClassVisitor, but interface was expected 
java.lang.IncompatibleClassChangeError: Found class org.objectweb.asm.ClassVisitor, but interface was expected 

Zauważ, że "Groovy Biblioteki" są już na ścieżce klasy.

Co teraz robię źle?

+0

Jaką wersję groovy używasz? Czy upewniasz się, że wersja, z którą kompilujesz, jest taka sama jak wersja, w której ją uruchamiasz? –

+0

Używam groovy 2.0.1 w wierszu poleceń. W Eclipse Juno moja wtyczka pokazuje groovy-all-2.0 i asm 4.0. W Eclipse Indigo moja wtyczka pokazuje to samo. :) – user898535

+0

Domyślam się, że kompilujesz z wcześniejszą wersją groovy, ale działającą z nowszą wersją. Jaką wersję widzisz po przejściu do Preferencji -> Groovy -> Kompilator? –

Odpowiedz

14

Czy jesteś na najnowszym słoiku groovy/zależnym? .

Numer java.lang.IncompatibleClassChangeError dzieje się z powodu problemów ze zgodnością obwodu tylnego. Kod klienta należy zrekompilować, aby go rozwiązać.

Specyficzny widzisz błąd, ponieważ jest to Interfaceorg.objectweb.asm.ClassVisitor w ASM 3.2 i Class w asm 4,0 roku.

+0

Otrzymuję ten sam błąd, nie na moim komputerze lokalnym, gdy buduję go na jenkins. Wyłączyłem ASm 3.2 z mojego POM, ale nadal otrzymuję ten błąd, gdy Jennkins próbuje uruchomić kompilator maven po zakończeniu testów integracji. – Venki

+0

To jest poprawny Ajay. Jak wspomniano wcześniej, to rzeczywiście wydawało się problemem. :) I działało zgodnie z sugestią. Dzięki. :) – user898535

+0

Świetnie. Rozważ zaakceptowanie odpowiedzi, klikając przycisk zaznaczenia obok odpowiedzi –

2

Miałem ten sam problem, używając Spring i Groovy w jednym module. Wiosna w wersji 3.1.2 nadal używa starszego ASM, Groovy używa tego z klasą. Chociaż może być możliwe dostosowanie niektórych wykluczeń, założę się, że nie zawsze jest to opcja.

Po przeczytaniu this thread postanowiłem zrobić z groovy-all.jar zamiast listy wszystkich potrzebnych bibliotek programu Groovy. Jeśli jest to opcja dla ciebie, może to być łatwy sposób na uniknięcie dalszych problemów.