2

업데이트 허드슨 Findbugs의로예외로 인해 Hudson이 Findbugs 보고서를 생성하지 못하게하려면 어떻게합니까?

연결하지-에 버전 4.3이 더 이상 문제가 내 문제의 예로서

최종 업데이트

이다, 나는 구축을 위해 노력하고있어 프로젝트 http://www.sonatype.com/books/mvnex-book/reference/multimodule.html

다음 나는 간단 부모에게 다음/pom.xml 파일을 추가

<reporting> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>findbugs-maven-plugin</artifactId> 
     <version>2.3</version> 
     <configuration> 
     <findbugsXmlOutput>true</findbugsXmlOutput> 
     <findbugsXmlWithMessages>true</findbugsXmlWithMessages> 
     <xmlOutput>true</xmlOutput> 
     </configuration> 
    </plugin> 
    </plugins> 
</reporting> 

그리고 간단한 날씨/pom.xml 파일과 간단한 웹 애플리케이션/pom.xml 파일

<reporting> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>findbugs-maven-plugin</artifactId> 
    </plugin> 
    </plugins> 
</reporting> 

에 다음 나는대로 (FindBugs는 몇 가지 문제가 발생 가지고있는 클래스 중 하나에 끔찍한 다음과 동일 방법을 삽입 0 버그에 오류 없음) :

나는 maven2 스타일 프로젝트와 함께 허드슨을 사용하고 있습니다. 작업이 목표와 간단한 - 부모 치어를 대상으로

clean site 

나는 다음과 같은 예외가 얻을 :

[INFO] Generating "FindBugs Report" report. 
[java] Warnings generated: 2 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Cannot inherit from final class 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
java.lang.VerifyError: Cannot inherit from final class 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 
at java.net.URLClassLoader.access$100(URLClassLoader.java:56) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
at hudson.remoting.RemoteClassLoader$ClassLoaderProxy.fetch2(RemoteClassLoader.java:370) 
at sun.reflect.GeneratedMethodAccessor594.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:592) 
at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:274) 
at hudson.remoting.Request$2.run(Request.java:270) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) 
at java.util.concurrent.FutureTask.run(FutureTask.java:123) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) 
at java.lang.Thread.run(Thread.java:595) 

버전 정보 :

  • 메이븐 2.2.1
  • 자바 1.5.0_22
  • JBoss 4.0.5.GA에서 실행되는 Hudson 1.341 (1.339에서도 발견) (4.2.2.GA에서 동일한 오류 및 5 .1.0.GA)
  • 메이븐 FindBugs 플러그인 2.3
  • 허드슨 FindBugs 플러그인 4.1

이 문제를 해결하는 방법에 어떤 아이디어?

+0

어제 * FindBugs 플러그인을 설치하려고했을 때 똑같은 문제가 발생했습니다. 빠른 질문 및 업데이트 주셔서 감사합니다. – Tim

답변

6

FindBugs FAQ에 따르면이 문제는 잘못된 버전의 Apache BCEL이 사용 된 경우에 발생합니다 (Q2: When I click the "Find Bugs!" button, I get a NoSuchMethodError or VerifyError 참조). 필자는 maven-findbugs-plugin이 JBoss로부터 BCEL 라이브러리를 얻고 있다고 생각합니다. 왜냐하면 애매한 클래스 로딩 문제 때문입니다. Hudson의 Jira에는 매우 유사한 버그가 있습니다. HUDSON-5134 (hudson findbugs 플러그인도 영향을받습니다).

나의 이해는이 문제가 도입 된 것입니다 최근 (v1.338에서)하고, 해결 방법이 있더라도, 그것은 인 허드슨 버그 (그것, 그것은 보스에 문제가 회귀 아니다된다).

지금, 당신은 IMO 두 가지 해결책이 있습니다

  • 가 v1.338 허드슨 전방의 버전을 사용하십시오 (회귀가이 ​​버전에 대한보고)하지만 이전 버전을 사용하고 그것으로 튀어 나와 정말 확실하지 않다 실행 가능한 솔루션.
  • JBoss의 bcel.jar (server/SERVERNAME/lib)을 maven-findbugs-plugin (dependencies 참조)에서 사용하는 버전으로 제거하거나 바꿉니다. 이것이 JBoss에 어떻게 영향을 미치는지 말할 수는 없습니다 (제거하면 JBoss를 디버그 모드로 실행할 수있는 능력이 느껴지 겠지만, 그것을 대체하면 모든 것이 잘 작동하는지 말할 수는 없습니다) . 당신이이 같은 새로운 락스 문제 (http://issues.hudson-ci.org/)을 작성하시기 바랍니다 것입니다 무엇이든

허드슨의 회귀이다. 해결 방법이 있기 때문에 그들은 HUDSON-5134을 "고치지 않을 것"이라고 표시했지만 JBoss 라이브러리를 망쳐 놓는 것이 좋은 해결책이라고 생각하지 않습니다. (저는 반복하고 있지만 이것은 허드슨 버그입니다). 그래서, 허드슨 개발자들에게 다른 사용자가이 문제의 영향을 받는다는 사실을 알게되면 모든 커뮤니티 전체에 도움이 될 것입니다 (적어도, 그렇게되기를 바랍니다).

0

제공된 다른 대답이 더 좋지만, Ant 또는 배치 파일을 사용하여 FindBugs 단계가 실패하지 않는 별도의 빌드 단계를 만드는 데 사용할 수 있습니다. Hudson 플러그인을 사용하여 결과를 표시 할 수 있습니다.

0

파스칼이 지적했듯이 HUDSON-5134과 비슷한 버그가 있으며이 버그는 Hudson 1.338 릴리즈에서 시작된 동작을 나타냅니다. 허드슨은 일주일에 한 번씩 출시되기 때문에 어느 버전이 버그를 도입했는지 파악하기가 어려울 수 있습니다. 허드슨 version 1.337 (HUDSON-5048)과 함께 릴리스 된 클래스 로더 관련 변경 사항이 있음을 알았습니다. 여기서는 문제의 원인이 될 것으로 생각되지만 직접적인 증거는 없습니다.

하지만이 문제를 방지하려면 1.337 이하로 롤백해야 할 수 있습니다.

관련 문제