Maven无法构建Grails项目——AsyncException, RegexSupport



我正在使用Maven构建一个Grails 1.3.7项目。它构建在我的机器上,但在构建服务器上,我得到一个AsyncException,这对我来说并不意味着什么:

[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。

这是我们添加到BuildConfig中的丑陋hack。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")

我确实有机会用WAS 7/Java 1.6测试我们的一个应用程序,当我删除那个工作时,我没有遇到这个问题。

最新更新