我正在使用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.groovy中的丑陋hack,以解决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测试我们的一个应用程序,而删除该变通方法时却没有遇到问题。
关于grails - Maven无法构建Grails项目-AsyncException,RegexSupport?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8173503/