1
votes

When trying to do a compile of a simple Grails 2.1 application with Jenkins I am getting a failure with the for the following reason:

Error Error executing script Compile: startup failed: /tmp/jenkins-grails/projects/EskridgeBudget/scriptCache/_GrailsCompile_groovy.class (No such file or directory)

Further up the chain I get:

Could not load Logmanager "org.apache.juli.ClassLoaderLogManager"

Which may or may not be related.

I can build the same project from the command line on the same box successfully.

Version Info

  • Grails command line version is Grails version: 2.1.1.
  • Jenkins version is 1.492
  • Grails Jenkins plugin version is 1.6.3

Full console output:

Started by user anonymous Building in workspace /srv/jenkins/jobs/MyBudget-BUILD/workspace [workspace] $ hg showconfig paths.default [workspace] $ hg pull --rev default [workspace] $ hg update --clean --rev default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved [workspace] $ hg log --rev . --template {node} [workspace] $ hg log --rev . --template {rev} [workspace] $ hg log --rev ac19aee9ab6db38a6b42c72f41d0bc0fa0c59511 [workspace] $ hg log --template "{desc|xmlescape}{file_adds|stringify|xmlescape}{file_dels|stringify|xmlescape}{files|stringify|xmlescape}{parents}\n" --rev default:0 --follow --prune ac19aee9ab6db38a6b42c72f41d0bc0fa0c59511 [workspace] $ grails -Dgrails.work.dir=/tmp/jenkins-grails compile --non-interactive Arguments: -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 Could not load Logmanager "org.apache.juli.ClassLoaderLogManager" java.lang.ClassNotFoundException: org.apache.juli.ClassLoaderLogManager at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:156) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:128) at org.codehaus.groovy.grails.cli.support.GrailsRootLoader.loadClass(GrailsRootLoader.java:48) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.util.logging.LogManager$1.run(LogManager.java:185) at java.security.AccessController.doPrivileged(Native Method) at java.util.logging.LogManager.(LogManager.java:175) at java.util.logging.Logger.getLogger(Logger.java:327) at org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport.(DefaultGroovyMethodsSupport.java:33) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.(MetaClassRegistryImpl.java:84) at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.(MetaClassRegistryImpl.java:61) at groovy.lang.GroovySystem.(GroovySystem.java:29) at org.codehaus.groovy.runtime.InvokerHelper.(InvokerHelper.java:49) at groovy.lang.GroovyObjectSupport.(GroovyObjectSupport.java:32) at groovy.lang.Closure.(Closure.java:224) at groovy.lang.Closure.(Closure.java:241) at groovy.lang.Closure$1.(Closure.java:208) at groovy.lang.Closure.(Closure.java:208) at org.codehaus.groovy.grails.cli.GrailsScriptRunner.(GrailsScriptRunner.java:84) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234) at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)

| Loading Grails 2.1.1 | Configuring classpath | Error Error executing script Compile: startup failed: /tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure1.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure2.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure2_closure6.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure2_closure6_closure7.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure3.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure3_closure8.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure3_closure8_closure9.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure4.class (No such file or directory)

/tmp/jenkins-grails/projects/MyBudget/scriptCache/_GrailsCompile_groovy$_run_closure5.class (No such file or directory)

10 errors (Use --stacktrace to see the full trace) Build step 'Build With Grails' marked build as failure Finished: FAILURE

1
kind of a dummy-check: is /tmp/jenkins-grails/ a path the Jenkins process has permissions to fiddle with? and/or: when you run outside of Jenkins successfully, do you set the grails work directory in the same way?Brian Henry
Yes, that was the problem. headdesk The Mercurial plugin I'm using copies the files under the same permissions as the repository. @BrianHenry Want to make that an answer?C. Ross

1 Answers

1
votes

Make sure /tmp/jenkins-grails/ is a path that the Jenkins process has permissions to fiddle with. (and/or: when you run outside of Jenkins successfully, set the grails work directory in the same way, if you don't currently, to verify).