【问题标题】:Build the grails application war file using the jenkins is failing使用 jenkins 构建 grails 应用程序战争文件失败
【发布时间】:2016-03-14 22:02:24
【问题描述】:

我已经配置了 jenkins 作业来构建 grails 应用程序 war 文件,如图所示。我检查了输出控制台,出现以下错误。

Output console Error: [JENKINS-7702] sanitizing $JAVA_OPTS
    [workspace] $ cmd.exe /C '"G:\practice\jenkins\tools\com.g2one.hudson.grails.GrailsInstallation\grails-2.2.4\bin\grails.bat -Dgrails.work.dir=/G:/practice/jenkins/jobs/Grails-Jenkins/workspace//target clean --non-interactive --plain-output && exit %%ERRORLEVEL%%"'
    Can't load log handler "1catalina.org.apache.juli.FileHandler"
    java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
    java.lang.ClassNotFoundException: 1catalina.org.apache.juli.FileHandler
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        at java.util.logging.LogManager$4.run(LogManager.java:808)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.util.logging.LogManager.loadLoggerHandlers(LogManager.java:802)
        at java.util.logging.LogManager.addLogger(LogManager.java:1008)
        at java.util.logging.LogManager$1.run(LogManager.java:209)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.util.logging.LogManager.<clinit>(LogManager.java:181)
        at java.util.logging.Logger.demandLogger(Logger.java:339)
        at java.util.logging.Logger.getLogger(Logger.java:393)
        at org.codehaus.groovy.runtime.DefaultGroovyMethodsSupport.<clinit>(DefaultGroovyMethodsSupport.java:33)
        at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:96)
        at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:73)
        at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:33)
        at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:62)
        at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:32)
        at groovy.lang.Closure.<init>(Closure.java:221)
        at groovy.lang.Closure.<init>(Closure.java:238)
        at groovy.lang.Closure$1.<init>(Closure.java:205)
        at groovy.lang.Closure.<clinit>(Closure.java:205)
        at org.codehaus.groovy.grails.cli.GrailsScriptRunner.<clinit>(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:606)
        at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234)
        at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)
        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:606)
        at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234)
        at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)

请协助我进行 grails 构建配置。

【问题讨论】:

    标签: grails jenkins


    【解决方案1】:

    编译前刷新依赖:

    clean refresh-dependencies "war target/ROOT.war" 
    

    顺便说一句,我们通常使用字段 Exec command 并在其中添加自定义 bash 脚本来控制生成文件的流程和位置。

    更新: 基于this thread:

    看起来您的 logging.properties 文件包含无效 设置。

    或

    JMX 代理似乎正在使用 Tomcat 的 logging.properties,但是 使用来自 JRE 的未修改的 java.util.logging 包,而不是 来自 Tomcat 的 JULI。你能告诉我们最终的命令行是什么吗 启动Tomcat?参数指定 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 好像不见了。

    【讨论】:

    • 我已经尝试了上面的解决方案:targets: clean refresh-dependencies "war target/ROOT.war" 但是还是报同样的错误。
    • 得到以下错误:[workspace] $ cmd.exe /C '"C:\grails-2.2.4\bin\grails.bat -Dgrails.work.dir=/G:/practice/jenkins/jobs/Grails-Jenkins/workspace//target upgrade --non-interactive &amp;&amp; exit %%ERRORLEVEL%%"' Can't load log handler "1catalina.org.apache.juli.FileHandler"
    • 你设置了CATALINA_HOME 吗?
    • 我为 tomcat 服务器设置了环境变量 CATELINE_HOME 仍然出现一些错误:1:Can't load log handler "4host-manager.org.apache.juli.FileHandler" java.lang.ClassNotFoundException: 4host-manager.org.apache.juli.FileHandler 2.Can't load log handler "3manager.org.apache.juli.FileHandler" java.lang.ClassNotFoundException: 3manager.org.apache.juli.FileHandler 3.Can't load log handler "2localhost.org.apache.juli.FileHandler" java.lang.ClassNotFoundException: 2localhost.org.apache.juli.FileHandler
    • 但是构建成功并部署到tomcat服务器。我不知道为什么我仍然收到这些错误....
    猜你喜欢
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多