Grails 1.4.0.M1 (с STS 2.7.0.M2) NoClassDefFoundError для GantBuilder - PullRequest
1 голос
/ 16 июня 2011

Я только что обновился до ...

  • Граальс 1.4.0.M1
  • Groovy 1.8.0
  • Версия STS: 2.7.0.M2 ID сборки: 201106101000 - 64-битная версия Cocoa для Mac
  • У меня OS X 10.5.8. с JVM 1.5.0

Когда я запускаю команду grails, например, «create-app» или «upgrade» в существующем проекте, я получаю следующую ошибку NoClassDefFoundError для GantBuilder. (полный список приведен ниже)

Предлагаемое решение для аналогичной проблемы с этого форума - это то, что gant_groovy1.8-1.9.5.jar отсутствует. Я добавил это непосредственно в проект, а также в папку groovy / lib (и перешел в STS -> настройки -> Groovy -> компилятор -> Обновить все контейнеры Groovy Classpath), но все равно получаю ошибку. (Когда я добавил gant_groovy1.8-1.9.5.jar в groovy / lib, это было для отдельной загрузки groovy, я не уверен, какую папку groovy / lib STS использует для внутренних команд оболочки grails или как просмотреть STS groovy путь к классу)

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)

У кого-нибудь есть идеи?

1 Ответ

2 голосов
/ 16 июня 2011

Если я правильно понимаю, Grails использует не jar в вашей папке groovy / lib, а jar в папке установки Grails. Вы можете попробовать это:

Согласно сообщению здесь , вам нужно перейти в папку «Установленные Grails» (% GRAILS_HOME%). В этой папке найдите папку lib и укажите правильную версию gant_groovy.jar, которая у вас есть. Затем отредактируйте% GRAILS_HOME% / bin / startGrails.bat как текст и добавьте эту строку:

( 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 
)

Обратите внимание, что путь в приведенной выше строке не очень точен (он кажется разным для каждого распределения). Вы должны найти нужный jar в папке% GRAILS_HOME% и соответственно изменить путь.

...