Domanda

Ho appena aggiornato a ...

  • Grails 1.4.0.M1
  • Groovy 1.8.0
  • Versione STS: 2.7.0.m2 ID build: 201106101000 - Versione di cacao a 64 bit per Mac
  • Ho OS X 10.5.8. con JVM 1.5.0

Quando eseguo un comando Grails, ad esempio Create-app "o" Aggiornamento "su un progetto esistente, ottengo il seguente NoclassDeffounderror per GantBuilder. (vedi sotto per la traccia completa)

Una soluzione proposta per un problema simile da questo forum è che Gant_groovy1.8-1.9.5.jar manca. L'ho aggiunto direttamente al progetto e anche a una cartella Groovy/Lib (e sono andato su STS -> Preferenze -> Groovy -> Compilatore -> Aggiorna tutti i contenitori per il percorso di classe Groovy) ma ottengo ancora l'errore. (Quando ho aggiunto gant_groovy1.8-1.9.5.jar a groovy/lib è stato per un download di groovy separato, non sono sicuro di quale cartella groovy/lib utilizza STS per i comandi interni di shell o come visualizzare la sts groovy percorso di classe)

found org.springframework#spring-test;3.1.0.M1 in default
:: resolution report :: resolve 2068ms :: artifacts dl 119ms
---------------------------------------------------------------------
|                  |            modules            ||   artifacts   |
|       conf       | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
|       test       |   74  |   0   |   0   |   0   ||   74  |   0   |
---------------------------------------------------------------------
Script threw exception
java.lang.NoClassDefFoundError: org.codehaus.gant.GantBuilder
    at org.codehaus.gant.GantBinding.class$(GantBinding.groovy)
    at org.codehaus.gant.GantBinding.$get$$class$org$codehaus$gant$GantBuilder(GantBinding.groovy)
    at org.codehaus.gant.GantBinding.<init>(GantBinding.groovy:41)
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.callPluginOrGrailsScript(GrailsScriptRunner.java:448)
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.runInteractive(GrailsScriptRunner.java:377)
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.executeCommand(GrailsScriptRunner.java:308)
    at org.codehaus.groovy.grails.cli.GrailsScriptRunner.main(GrailsScriptRunner.java:130)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:592)
    at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234)
    at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)

Qualcuno ha qualche idea?

È stato utile?

Soluzione

Se quello che ho capito è giusto, i Grails non usano il barattolo nella cartella Groovy/Lib, ma il barattolo nella cartella di installazione dei Grails. Potresti voler provare questo:

Secondo il post qui, dovresti andare alla cartella Grails installata (%Grails_Home%). In quella cartella, trova la cartella Lib e specifica la versione giusta di gant_groovy.jar che hai. Quindi modifica %Grails_home %/bin/startgrails.bat come testo e aggiungi questa riga:

( set STARTER_CLASSPATH=%GRAILS_HOME%\lib\org.codehaus.groovy\groovy-all\jars\groovy-all-1.8.0.jar;%GRAILS_HOME%\dist\grails-bootstrap-1.4.0.M1.jar;%GRAILS_HOME%\lib\org.codehaus.gant\gant_groovy1.8\jars\gant_groovy1.8-1.9.5.jar 
)

Si noti che il percorso sulla riga sopra non è molto accurato (sembra diverso per ogni distribuzione). Dovresti trovare il barattolo richiesto nella cartella % Grails_home % e cambiare il percorso di conseguenza.

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