java - 在 Jenkins 上查找错误

标签 java maven jenkins findbugs

我正在尝试在 Jenkins 上配置 Finbugs。 我的应用程序版本:

  • Jenkins :1.624
  • FindBugs-jsr305 com.google.code.findbugs:jsr305:1.3.9
  • FindBugs 插件 4.61
  • Maven 2.2.1
  • java 1.6.0_43

在本地,我使用命令准备报告没有任何问题:

mvn clean -D"dependency.locations.enabled=false" compile site

但不幸的是我在 Jenkins 上遇到了问题:我的日志是:

  ERROR: Could not find local repository for 2.2.1
[FATAL ERROR] hudson.maven.agent.PluginManagerInterceptor$1MojoIntercepterImpl#configureComponent(...) caused a linkage error (java.lang.VerifyError) and may be out-of-date. Check the realms:
[FATAL ERROR] Plugin realm = app0.child-container[org.apache.cxf:cxf-codegen-plugin:2.3.2-fuse-00-00]
urls[0] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-codegen-plugin/2.3.2-fuse-00-00/cxf-codegen-plugin-2.3.2-fuse-00-00.jar
urls[1] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar
urls[2] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
urls[3] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-tools-common/2.3.2-fuse-00-00/cxf-tools-common-2.3.2-fuse-00-00.jar
urls[4] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/velocity/velocity/1.6.4/velocity-1.6.4.jar
urls[5] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
urls[6] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/commons-lang/commons-lang/2.5/commons-lang-2.5.jar
urls[7] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/oro/oro/2.0.8/oro-2.0.8.jar
urls[8] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar
urls[9] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/com/sun/xml/bind/jaxb-xjc/2.1.13/jaxb-xjc-2.1.13.jar
urls[10] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/com/sun/xml/bind/jaxb-impl/2.1.13/jaxb-impl-2.1.13.jar
urls[11] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-api/2.3.2-fuse-00-00/cxf-api-2.3.2-fuse-00-00.jar
urls[12] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-common-utilities/2.3.2-fuse-00-00/cxf-common-utilities-2.3.2-fuse-00-00.jar
urls[13] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/ws/commons/schema/XmlSchema/1.4.7/XmlSchema-1.4.7.jar
urls[14] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/codehaus/woodstox/woodstox-core-asl/4.0.8/woodstox-core-asl-4.0.8.jar
urls[15] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/codehaus/woodstox/stax2-api/3.0.2/stax2-api-3.0.2.jar
urls[16] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/neethi/neethi/2.0.4/neethi-2.0.4.jar
urls[17] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
urls[18] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-common-schemas/2.3.2-fuse-00-00/cxf-common-schemas-2.3.2-fuse-00-00.jar
urls[19] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-rt-core/2.3.2-fuse-00-00/cxf-rt-core-2.3.2-fuse-00-00.jar
urls[20] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/geronimo/specs/geronimo-javamail_1.4_spec/1.7.1/geronimo-javamail_1.4_spec-1.7.1.jar
urls[21] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-tools-wsdlto-core/2.3.2-fuse-00-00/cxf-tools-wsdlto-core-2.3.2-fuse-00-00.jar
urls[22] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-tools-validator/2.3.2-fuse-00-00/cxf-tools-validator-2.3.2-fuse-00-00.jar
urls[23] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-tools-wsdlto-databinding-jaxb/2.3.2-fuse-00-00/cxf-tools-wsdlto-databinding-jaxb-2.3.2-fuse-00-00.jar
urls[24] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/cxf/cxf-tools-wsdlto-frontend-jaxws/2.3.2-fuse-00-00/cxf-tools-wsdlto-frontend-jaxws-2.3.2-fuse-00-00.jar
urls[25] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/xml-resolver/xml-resolver/1.2/xml-resolver-1.2.jar
urls[26] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/springframework/spring-core/3.0.5.RELEASE/spring-core-3.0.5.RELEASE.jar
urls[27] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/springframework/spring-asm/3.0.5.RELEASE/spring-asm-3.0.5.RELEASE.jar
urls[28] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/springframework/spring-beans/3.0.5.RELEASE/spring-beans-3.0.5.RELEASE.jar
urls[29] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/springframework/spring-context/3.0.5.RELEASE/spring-context-3.0.5.RELEASE.jar
urls[30] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/springframework/spring-aop/3.0.5.RELEASE/spring-aop-3.0.5.RELEASE.jar
urls[31] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
urls[32] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/springframework/spring-expression/3.0.5.RELEASE/spring-expression-3.0.5.RELEASE.jar
urls[33] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/ant/ant/1.8.1/ant-1.8.1.jar
urls[34] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/ant/ant-launcher/1.8.1/ant-launcher-1.8.1.jar
urls[35] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/ant/ant-nodeps/1.8.1/ant-nodeps-1.8.1.jar
[FATAL ERROR] Container realm = plexus.core.maven
urls[0] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/maven/wagon/wagon-webdav-jackrabbit/1.0-beta-6/wagon-webdav-jackrabbit-1.0-beta-6.jar
urls[1] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/maven/wagon/wagon-http-shared/1.0-beta-6/wagon-http-shared-1.0-beta-6.jar
urls[2] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/nekohtml/xercesMinimal/1.9.6.2/xercesMinimal-1.9.6.2.jar
urls[3] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/nekohtml/nekohtml/1.9.6.2/nekohtml-1.9.6.2.jar
urls[4] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar
urls[5] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
urls[6] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/commons-codec/commons-codec/1.2/commons-codec-1.2.jar
urls[7] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar
urls[8] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/jackrabbit/jackrabbit-webdav/1.5.0/jackrabbit-webdav-1.5.0.jar
urls[9] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/apache/jackrabbit/jackrabbit-jcr-commons/1.5.0/jackrabbit-jcr-commons-1.5.0.jar
urls[10] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/slf4j/slf4j-api/1.5.3/slf4j-api-1.5.3.jar
urls[11] = file:/var/fuse-base/apache-servicemix-4.3.1-devDD/project-repository/org/slf4j/slf4j-nop/1.5.3/slf4j-nop-1.5.3.jar
ERROR: Could not find local repository for 2.2.1
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Bad type on operand stack
Exception Details:
  Location:
    org/apache/commons/codec/binary/Base64OutputStream.<init>(Ljava/io/OutputStream;Z)V @11: invokespecial
  Reason:
    Type 'org/apache/commons/codec/binary/Base64' (current frame, stack[2]) is not assignable to 'org/apache/commons/codec/binary/BaseNCodec'
  Current Frame:
    bci: @11
    flags: { flagThisUninit }
    locals: { uninitializedThis, 'java/io/OutputStream', integer }
    stack: { uninitializedThis, 'java/io/OutputStream', 'org/apache/commons/codec/binary/Base64', integer }
  Bytecode:
    0000000: 2a2b bb00 0259 03b7 0003 1cb7 0004 b1  

[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    org/apache/commons/codec/binary/Base64OutputStream.<init>(Ljava/io/OutputStream;Z)V @11: invokespecial
  Reason:
    Type 'org/apache/commons/codec/binary/Base64' (current frame, stack[2]) is not assignable to 'org/apache/commons/codec/binary/BaseNCodec'
  Current Frame:
    bci: @11
    flags: { flagThisUninit }
    locals: { uninitializedThis, 'java/io/OutputStream', integer }
    stack: { uninitializedThis, 'java/io/OutputStream', 'org/apache/commons/codec/binary/Base64', integer }
  Bytecode:
    0000000: 2a2b bb00 0259 03b7 0003 1cb7 0004 b1  

    at hudson.console.ConsoleNote.encodeToBytes(ConsoleNote.java:182)
    at hudson.console.ConsoleNote.encodeTo(ConsoleNote.java:157)
    at hudson.util.StreamTaskListener.annotate(StreamTaskListener.java:159)
    at hudson.util.StreamTaskListener._error(StreamTaskListener.java:134)
    at hudson.util.StreamTaskListener.error(StreamTaskListener.java:143)
    at hudson.maven.reporters.MavenFingerprinter.recordParents(MavenFingerprinter.java:144)
    at hudson.maven.reporters.MavenFingerprinter.postBuild(MavenFingerprinter.java:110)
    at hudson.maven.Maven2Builder.postModule(Maven2Builder.java:129)
    at hudson.maven.MavenBuilder$Adapter.fireLeaveModule(MavenBuilder.java:353)
    at hudson.maven.MavenBuilder$Adapter.postBuild(MavenBuilder.java:307)
    at org.apache.maven.lifecycle.LifecycleExecutorInterceptor.execute(LifecycleExecutorInterceptor.java:68)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
    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.classworlds.Launcher.launchEnhanced(Launcher.java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
    at hudson.maven.agent.Main.launch(Main.java:205)
    at hudson.maven.MavenBuilder.call(MavenBuilder.java:154)
    at hudson.maven.Maven2Builder.call(Maven2Builder.java:79)
    at hudson.maven.Maven2Builder.call(Maven2Builder.java:55)
    at hudson.remoting.UserRequest.perform(UserRequest.java:121)
    at hudson.remoting.UserRequest.perform(UserRequest.java:49)
    at hudson.remoting.Request$2.run(Request.java:326)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

我的pom.xml:

  ...
        <findbugs.version>2.5.3</findbugs.version>
    ...
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.5.1</version>
                    <configuration>
                        <encoding>UTF-8</encoding>
                        <source>1.6</source>
                        <target>1.6</target>
                    </configuration>
                </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-pmd-plugin</artifactId>
                            <configuration>
                                <linkXref>true</linkXref>
                                <sourceEncoding>UTF-8</sourceEncoding>
                                <minimumTokens>30</minimumTokens>
                                <targetJdk>1.6</targetJdk>
                            </configuration>
                        </plugin>
                        <plugin>
                           <groupId>org.codehaus.mojo</groupId>
                           <artifactId>findbugs-maven-plugin</artifactId>
                           <version>${findbugs.version}</version>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
          <reporting>
             <plugins>
                <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-surefire-report-plugin</artifactId>
                   <version>${surefire.reportplugin.version}</version>
                </plugin>
                <plugin>
                   <groupId>org.codehaus.mojo</groupId>
                   <artifactId>findbugs-maven-plugin</artifactId>
                   <version>${findbugs.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                </plugin>
              </plugins>
           </reporting>

更新: 我的 mvn 插件版本:2.11 这就是我的配置: Image with Jenkins Configuration

和我的外部 mvn,它在/usr/local/maven 中有配置:

<localRepository>my_local_repo</localRepository>

<proxies>
        <proxy>
                <id>optional</id>
                <active>true</active>
                <protocol>http</protocol>
                <host>my.host</host>
                <port>3128</port>
                <nonProxyHosts>custom.com.pl</nonProxyHosts>
        </proxy>
  </proxies>

最佳答案

将 Maven 项目配置更新为:

  • 执行者本地
  • 工作空间本地

Manage Jenkins

您还可以尝试解决此问题的方法:

  • 而不是手动提供本地 Maven 安装。使用安装 自动在 Maven 安装中,Jenkins 会处理所有的事情 这个问题。

关于java - 在 Jenkins 上查找错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31942495/

相关文章:

java - 访问Java中多个类之间的变量

spring - 如何使用 maven 构建我的 Spring MVC 项目,然后完全使用命令行在我的 vfabric tomcat 服务器上运行?

java - 在 Excel 中用相同的颜色填充整个工作表 - Apache POI

java - osgi 包如何知道接口(interface)?

maven - 用于下载自定义插件依赖项的 gradle 配置

maven - 如何在共享 jenkins 服务器上管理 maven settings.xml?

jenkins - 如何从 Jenkins 声明式管道中替换 Artifactory File Spec "Spec Vars"

jenkins - 如何在 jenkinsfile 内使用凭证类型 "SSH Username with private key"进行管道作业

java - Head First Java Mix For 5 练习 - 中断子句

java - 在java插件中从控制台获取输入