2011-11-17 163 views
1

我正在使用Maven構建一個Grails 1.3.7項目。它建立在我的機器上,但在構建服務器,我得到一個AsyncException,這並不意味着什麼對我說:Maven無法構建Grails項目 - AsyncException,RegexSupport?

[INFO] [grails:maven-grails-app-war] 
[INFO] Using Grails 1.3.7 
AsyncException{concurrentExceptions=[ 
java.lang.NoClassDefFoundError: org.codehaus.groovy.runtime.RegexSupport 
]} 
    at groovyx.gpars.AsyncInvokerUtil.eachParallel(AsyncInvokerUtil.groovy:106) 
    at grails.util.BuildSettings$_configureDependencyManager_closure6.doCall(BuildSettings.groovy:784) 
    at groovyx.gpars.Asynchronizer$_withExistingAsynchronizer_closure2.doCall(Asynchronizer.groovy:262) 
    at groovyx.gpars.Asynchronizer$_withExistingAsynchronizer_closure2.doCall(Asynchronizer.groovy) 
    at groovyx.gpars.Asynchronizer.withExistingAsynchronizer(Asynchronizer.groovy:261) 
    at groovyx.gpars.Asynchronizer$withExistingAsynchronizer.callStatic(Unknown Source) 
    at groovyx.gpars.Asynchronizer.doParallel(Asynchronizer.groovy:157) 
    at groovyx.gpars.Asynchronizer$doParallel$0.callStatic(Unknown Source) 
    at groovyx.gpars.Asynchronizer.doParallel(Asynchronizer.groovy:131) 
    at groovyx.gpars.Asynchronizer$doParallel.call(Unknown Source) 
    at grails.util.BuildSettings.configureDependencyManager(BuildSettings.groovy:782) 
    at grails.util.BuildSettings$configureDependencyManager.callCurrent(Unknown Source) 
    at grails.util.BuildSettings.postLoadConfig(BuildSettings.groovy:682) 
    at grails.util.BuildSettings.loadConfig(BuildSettings.groovy:671) 
    at grails.util.BuildSettings$loadConfig$0.callCurrent(Unknown Source) 
    at grails.util.BuildSettings.loadConfig(BuildSettings.groovy:653) 
    at grails.util.BuildSettings$loadConfig.callCurrent(Unknown Source) 
    at grails.util.BuildSettings.loadConfig(BuildSettings.groovy:630) 
    at org.grails.maven.plugin.AbstractGrailsMojo.runGrails(AbstractGrailsMojo.java:286) 
    at org.grails.maven.plugin.MvnWarMojo.execute(MvnWarMojo.java:49) 
    at org.grails.maven.plugin.MvnGrailsAppWarMojo.execute(MvnGrailsAppWarMojo.java:53) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:539) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:480) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:459) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:311) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:278) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:282) 
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
WARNING: There was an error loading the BuildConfig: Some asynchronous operations failed.  
[java.lang.NoClassDefFoundError: org.codehaus.groovy.runtime.RegexSupport] 
AsyncException{concurrentExceptions=[ 
java.lang.NoClassDefFoundError: org.codehaus.groovy.runtime.RegexSupport 
]} 

任何想法可能是什麼原因?我沒有任何東西,但是我的機器和構建服務器之間的一個區別是構建服務器使用IBM JDK(WAS 6.1 JDK)。

我試圖通過指向IBM JDK在我的機器上重現這一點,但我唯一能找到的是Java 6 JDK,而構建服務器的JDK是1.5.0。

+1

偶然是否使用IBM JDK? – proflux

+0

是的,在構建服務器上。 @proflux告訴我你已經遇到並解決了這個問題。 –

+0

我目前的解決方法是升級IBM JDK 1.6.0版(它附帶WAS 7.0)。 –

回答

1

下面是我們添加到BuildConfig.groovy以解決IBM JDK問題的醜陋黑客。

// IBM JDK Bug workaround 
this.getClass().getClassLoader().loadClass("org.codehaus.groovy.runtime.RegexSupport") 
this.getClass().getClassLoader().loadClass("org.codehaus.groovy.runtime.DefaultGroovyMethods") 

我沒有得到一個機會來測試我們的應用程序之一,爲7/Java 1.6的,當我刪除周圍的工作,我沒有遇到這個問題。