2009-03-09 2 views
1

ANT 스크립트에 bcel.jar 수락하지 :FindBugs는 내 개미 lib 디렉토리에 findbugs를 설치하고 내 주요 ANT 스크립트에 다음 코드를 추가

<target name="findbugs" depends="init"> 

    <findbugs home="C:\\findbugs\\" output="html outputFile="C:\\findbugs\\out.html" jvmargs="-Xms512M"> 
     <sourcePath path="${messageaggregator.src}" /> 
     <class location="${messageaggregator.src}"/> 


    </findbugs> 
</target> 

다음 XML은 초기화 대상에서 호출됩니다

 
findbugs: 
    [findbugs] Executing findbugs from ant task 
    [findbugs] Running FindBugs... 
    [findbugs] BCEL class compatability error. 
    [findbugs] The version of class org.apache.bcel.generic.ObjectType found was not compatible with 
    [findbugs] FindBugs. Please remove any BCEL libraries that may be interfering. This may happen 
    [findbugs] if you have an old version of BCEL or a library that includes an old version of BCEL 
    [findbugs] in an "endorsed" directory. 
    [findbugs] Output saved to C:\\findbugs\\out.html 

왜 findbu는 다음 ANT 스크립트를 실행에

<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"> 
, 내가 얻을 모두는 다음과 같은 출력 작동하지 않습니까?

답변

2

제거해야하는 이전 버전의 BCEL과 충돌이 있습니다. 그것은 당신의 jre/lib/ext 디렉토리 (나쁜 아이디어) 나 프로젝트를 위해 얻은 CLASSPATH의 일부일 수도 있고 Ant/lib의 일부일 수도 있습니다. 어떤 경우 든 CLASSPATH에서 모든 BCEL JAR을 찾아 제거하고 FindBugs가 요구하는 버전으로 업데이트해야합니다. 나는이 오류가 왜 findbugs 다음 BCEL의 자체 버전이있는 경우

-1

: 나는이 findbugs.home 디렉토리에서 bcel.jar를 제거하면

[findbugs] Executing findbugs from ant task 
[findbugs] Running FindBugs... 
[findbugs] The java class is not found: org.apache.bcel.classfile.ClassFormatException 
[findbugs] Output saved to C:\\findbugs\\out.html 

이 오류가 발생합니다.

0

Java 버전 1.6.0_06에는 이전 BCEL 라이브러리가 들어 있습니다.

자바 버전 "1.6.0_06" 자바 (TM) SE 런타임 환경 자바 핫스팟 (TM) 클라이언트 VM I되면

(10.0-B22, 혼합 모드를 구축) (1.6.0_06이-B02 구축) 1.5.0_17로 변경하면 정상적으로 작동합니다.

0

xalan:xalan:jar:2.6.0 라이브러리 (내 프로젝트에서 org.apache.xmlgraphics:batik-bridge:jar:1.7 라이브러리의 전이 종속성 이었음)가 org.apache.bcel.generic.ObjectType 클래스 (잘못된 버전 일 가능성이 있음)를 포함하고 있음을 알게되었습니다. 이 클래스는, 아마도, 다음과 같은 오류가 발생 하나입니다 : 이슈가 (우리의 경우) 컴파일에 필요하지 않은 것처럼

 
[INFO] File Encoding is UTF-8 
BCEL class compatability error. 
The version of class org.apache.bcel.generic.ObjectType found was not compatible with 
FindBugs. Please remove any BCEL libraries that may be interfering. This may happen 
if you have an old version of BCEL or a library that includes an old version of BCEL 
in an "endorsed" directory. 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Java returned: 1 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
: Java returned: 1 
     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
     at org.apache.tools.ant.Task.perform(Task.java:348) 
     at groovy.util.AntBuilder.nodeCompleted(AntBuilder.java:199) 
     at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:153) 
     at groovy.util.AntBuilder.doInvokeMethod(AntBuilder.java:149) 
     at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:64) 
     at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:784) 
     at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:758) 
     at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:170) 
     at org.codehaus.mojo.findbugs.FindBugsGui.execute(FindBugsGui.groovy:163) 
     at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
     at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
     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 org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
     at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
     at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
     at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 

을, 우리는 단지 메이븐 pom.xml 파일이 오류에 runtime로 그 범위를 변경 ...

 
    ... 
    <dependencies> 
    <dependency> 
     <groupId>org.apache.xmlgraphics</groupId> 
     <artifactId>batik-bridge</artifactId> 
     <version>1.7</version> 
     <scope>runtime</scope> 
    </dependency> 
    </dependencies> 
    ... 

희망이 누군가의 엉덩이를 저장합니다 사라지고 mvn clean findbugs:findbugs findbugs:gui는 (적어도 나를 위해) 다시 작동

관련 문제