2014-04-06 34 views
0

我剛剛安裝了Eclipse KEPLER,並試圖將所有項目從github中重新導入。該項目全部gradle這個項目,所以我的程序是非常...NoClassDefFoundError org/apache/commons/cli/CommandLineParser運行時,Groovy腳本

  1. 克隆git的回購
  2. gradle這個日食
  3. 導入項目到Eclipse

一切似乎都很正常,除了我不能「運行,Groovy腳本」項目中的腳本。當我嘗試時,控制檯噴出...

java.lang.NoClassDefFoundError: org/apache/commons/cli/CommandLineParser 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2521) 
    at java.lang.Class.getMethod0(Class.java:2764) 
    at java.lang.Class.getMethod(Class.java:1653) 
    at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:99) 
    at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.CommandLineParser 
    at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 6 more 

。有趣的是,我可以「運行,Java應用程序」沒有問題。它絕對是一個Groovy項目,因爲它在項目圖標中包含G。堆棧跟蹤是什麼意思,我該如何克服它?

,是造成我的問題庫是在https://github.com/robertkuhar/StackOverflow

我gradle這個是1.11 Groovy的1.8.6在eclipse開普勒與Groovy的Eclipse插件版本:2.8.0.xx-20130703-1600- e43-RELEASE

+0

是否使用的是搖籃的版本建議? –

+0

Groovy上的Gradle 1.11 1.8.6 –

+0

它似乎沒有在JUNO中起作用。 –

回答

2

看起來像創建「Groovy腳本」運行配置時,主類設置爲org.codehaus.groovy.tools.GroovyStarter而不是您打算運行的腳本。用您想運行的Groovy類/腳本替換它會對問題進行排序。

更新

經過一番挖掘,以解決這一問題的方法是:

  • 從搖籃取出Groovy的依賴建立。
  • 配置項目類路徑和性質,在此answer

的build.gradle

eclipse { 
    project { 
     natures.add 'org.eclipse.jdt.groovy.core.groovyNature' 
    } 
    classpath { 
     file { 
      withXml { 
       Node node = it.asNode() 
       node.appendNode('classpathentry',[exported:"true",kind:"con",path:"GROOVY_SUPPORT"]) 
       node.appendNode('classpathentry',[exported:"true",kind:"con",path:"GROOVY_DSL_SUPPORT"]) 
      } 
     } 
    } 
} 
+0

這的確的工作(將org.codehaus.groovy.tools.GroovyStarter的調試配置更改爲特定的類),但我很驚訝我需要這樣做。非「gradle eclipse」項目通過org.codehaus.groovy.tools.GroovyStarter正常工作。我開始的事情「日食」是錯誤的設置環境。這感覺更像是解決問題的工作,但它解除了我的阻礙。 –

+0

它看起來像由Gradle創建的配置中缺少的東西。嘗試應用本[回答]建議的方法(http://stackoverflow.com/questions/15968141/how-can-i-set-in-build-gradle-the-groovy-nature-of-an-eclipse-project )但它沒有解決問題 –

+0

用更好的解決方案更新了答案 –