2013-10-27 26 views
7

我正在將我的項目從grails 2.2遷移到2.3,當我測試應用程序時(在IDEA 12.1.6上),我得到了這個錯誤Grails 2.2 to 2.3 - 運行分叉測試應用程序時出錯:無法加載grails生成監聽器類

| Error Error running forked test-app: Could not load grails build listener class 
java.lang.RuntimeException: Could not load grails build listener class 
    at org.codehaus.groovy.grails.cli.support.GrailsBuildEventListener.addGrailsBuildListener(GrailsBuildEventListener.java:258) 
    at org.codehaus.groovy.grails.cli.support.GrailsBuildEventListener.loadGrailsBuildListeners(GrailsBuildEventListener.java:106) 
    at org.codehaus.groovy.grails.cli.support.GrailsBuildEventListener.initialize(GrailsBuildEventListener.java:73) 
    at org.codehaus.groovy.grails.cli.fork.ForkedGrailsProjectClassExecutor.createEventListener(ForkedGrailsProjectClassExecutor.groovy:102) 
    at org.codehaus.groovy.grails.cli.fork.testing.ForkedGrailsTestRunner.createInstance(ForkedGrailsTestRunner.groovy:93) 
    at org.codehaus.groovy.grails.cli.fork.ForkedGrailsProjectClassExecutor.initializeProjectInstance(ForkedGrailsProjectClassExecutor.groovy:85) 
    at org.codehaus.groovy.grails.cli.fork.ForkedGrailsProjectClassExecutor.run(ForkedGrailsProjectClassExecutor.groovy:72) 
    at org.codehaus.groovy.grails.cli.fork.testing.ForkedGrailsTestRunner.main(ForkedGrailsTestRunner.groovy:75) 
Caused by: java.lang.ClassNotFoundException: org.jetbrains.groovy.grails.rt.GrailsIdeaTestListener 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:648) 
    at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:758) 
    at groovy.lang.GroovyClassLoader.loadClass(GroovyClassLoader.java:746) 
    at org.codehaus.groovy.grails.cli.support.GrailsBuildEventListener.addGrailsBuildListener(GrailsBuildEventListener.java:255) 
    ... 7 more 
| Error Error running forked test-app: Could not load grails build listener class 
| Error Forked Grails VM exited with error 

我BuildConfig.groovy是這樣的:

grails.servlet.version = "3.0" 
grails.project.class.dir = "target/classes" 
grails.project.test.class.dir = "target/test-classes" 
grails.project.test.reports.dir = "target/test-reports" 
grails.project.work.dir = "target/work" 
grails.project.target.level = 1.6 
grails.project.source.level = 1.6 

grails.project.fork = [ 
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true], 
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], 
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], 
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256] 
] 

grails.project.dependency.resolver = "maven" // or ivy 

grails.project.dependency.resolution = { 
    // inherit Grails' default dependencies 
    inherits("global") { 
     // specify dependency exclusions here; for example, uncomment this to disable ehcache: 
     // excludes 'ehcache' 
    } 
    log "error" 
    checksums true 
    legacyResolve false 

    repositories { 
     inherits true // Whether to inherit repository definitions from plugins 

     grailsPlugins() 
     grailsHome() 
     mavenLocal() 
     grailsCentral() 
     mavenCentral() 
    } 

    dependencies { 
     runtime 'mysql:mysql-connector-java:5.1.24' 
    } 

    plugins { 
     build ":tomcat:7.0.42" 

     compile ":scaffolding:2.0.1" 
     compile ':cache:1.1.1' 

     runtime ":hibernate:3.6.10.2" // or ":hibernate4:4.1.11.2" 
     runtime ":jquery:1.10.2" 
     runtime ":resources:1.2.1" 
    } 
} 

有什麼不對?

+0

你也嘗試過沒有分叉JVM嗎? – dmahapatro

+1

是的,「unforked」它運作良好,但我也想使用分叉模式 – Thermech

+0

任何更新?有沒有找到解決方案? – cdeszaq

回答

8

爲了充分利用IntelliJ中新的Grails分支測試功能,您需要find the grails-rt.jar file under your IntelliJ installation directory,並將其複製到您的grails項目庫目錄中,或通過類路徑將其提供給您的Grails應用程序。

在我的情況下,在Mac OS X,Grails的-rt.jar的文件位於:

/Applications/IntelliJ\ IDEA\ 13.app/plugins/Grails/lib/grails-rt.jar 

,我複製該文件到~/MyGrailsApp/lib

+0

謝謝,我會盡快嘗試我會給你反饋;) – Thermech

+0

這對我很有用,但它似乎應該在一個JIRA票證或intellij的錯誤報告中提出。 – anataliocs

+1

看起來至少有幾張門票:http://youtrack.jetbrains.com/issue/IDEA-115855和http://youtrack.jetbrains.com/issue/IDEA-115097 –

相關問題