【发布时间】:2012-12-12 03:52:36
【问题描述】:
当尝试使用 Jenkins 编译一个简单的 Grails 2.1 应用程序时,由于以下原因而失败:
Error 错误执行脚本编译:启动失败: /tmp/jenkins-grails/projects/EskridgeBudget/scriptCache/_GrailsCompile_groovy.class(没有这样的文件或目录)
我得到的链条更进一步:
无法加载 Logmanager "org.apache.juli.ClassLoaderLogManager"
这可能相关,也可能不相关。
我可以通过命令行在同一个盒子上成功构建同一个项目。
版本信息
- Grails 命令行版本是
Grails version: 2.1.1。 - Jenkins 版本为
1.492 - Grails Jenkins 插件版本为
1.6.3
完整的控制台输出:
由用户匿名在工作区中构建 /srv/jenkins/jobs/MyBudget-BUILD/workspace [工作空间] $ hg showconfig paths.default [工作区] $ hg pull --rev default [工作区] $ hg update --clean --rev 默认 0 个文件更新,0 个文件合并,0 个文件 已删除,0 个文件未解决 [工作区] $ hg log --rev 。 - 模板 {node} [工作空间] $ hg log --rev 。 --template {rev} [工作区] $ hg 日志 --rev ac19aee9ab6db38a6b42c72f41d0bc0fa0c59511 [工作区] $ hg 日志 --template "{desc|xmlescape}{file_adds|stringify|xmlescape}{file_dels|stringify|xmlescape}{files|stringify|xmlescape}{parents}\n" --rev 默认值:0 --follow --prune ac19aee9ab6db38a6b42c72f41d0bc0fa0c59511 [工作区] $ grails -Dgrails.work.dir=/tmp/jenkins-grails compile --non-interactive 参数:-Dgrails.work.dir=/tmp/jenkins-grails compile --non-interactive JAVA_OPTS: -server -XX:PermSize=256m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.util.logging .manager=org.apache.juli.ClassLoaderLogManager GRAILS_OPTS:-server -XX:PermSize=256m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 无法加载 Logmanager "org.apache.juli.ClassLoaderLogManager" java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager 在 org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:423) 在 org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128) 在 org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:48) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在 java.util.logging.LogManager$1.run(LogManager.java:185) 在 java.security.AccessController.doPrivileged(Native Method) 在 java.util.logging.LogManager.(LogManager.java:175) 在 java.util.logging.Logger.getLogger(Logger.java:327) 在 org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport.(DefaultGroovyMethodsSupport.java:33) 在 org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.(MetaClassRegistryImpl.java:84) 在 org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.(MetaClassRegistryImpl.java:61) 在 groovy.lang.GroovySystem.(GroovySystem.java:29) 在 org.codehaus.groovy.runtime.InvokerHelper.(InvokerHelper.java:49) 在 groovy.lang.GroovyObjectSupport.(GroovyObjectSupport.java:32) 在 groovy.lang.Closure.(Closure.java:224) 处 groovy.lang.Closure.(Closure.java:241) 在 groovy.lang.Closure$1.(Closure.java:208) 在 groovy.lang.Closure.(Closure.java:208) 在 org.codehaus.groovy.grails.cli.GrailsScriptRunner.(GrailsScriptRunner.java:84) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:601) 在 org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234) 在 org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)
|加载 Grails 2.1.1 |配置类路径 |错误执行错误 脚本编译:启动失败: /tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure1.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure2.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure2_closure6.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure2_closure6_closure7.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure3.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure3_closure8.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure3_closure8_closure9.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure4.class (没有这样的文件或目录)
/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure5.class (没有这样的文件或目录)
10 个错误(使用 --stacktrace 查看完整跟踪) 构建步骤 'Build 将 Grails 的构建标记为失败 Finished: FAILURE
【问题讨论】:
-
一种虚拟检查:
/tmp/jenkins-grails/是 Jenkins 进程有权使用的路径吗?和/或:当你在 Jenkins 之外成功运行时,你是否以同样的方式设置 grails 工作目录? -
是的,这就是问题所在。 headdesk 我正在使用的 Mercurial 插件以与存储库相同的权限复制文件。 @BrianHenry 想要回答这个问题吗?