2012-05-21 3 views
7

私はANTを使用してアプリケーションをビルドしていますが、Findbugs違反のコードを確認しています。Findbugs&Ant - 特定の違反に対してビルドを中止します。

私の目的は、コードに特定のfindbug違反が含まれているときはいつでもビルドを停止することです。

これはANT & Findbugsを使用して可能ですか?

N.B.できればカスタムクラスに書き込まないようにしてください。

答えて

4

すべての警告のためのプロパティを設定するwarningsProperty attribute on your findbugs taskを使用します。

<findbugs ... warningsProperty="findbugsFailure"/> 

と警告が生成されている場合taskを失敗する例:

<fail if="findbugsFailure"> 

<property name="findbugs.home" value="/export/home/daveho/work/findbugs" /> 

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

    <findbugs home="${findbugs.home}" 
       output="xml" 
       outputFile="bcel-fb.xml" 
       warningsProperty="findbugsFailure"> 
     <auxClasspath path="${basedir}/lib/Regex.jar" /> 
     <sourcePath path="${basedir}/src/java" /> 
     <class location="${basedir}/bin/bcel.jar" /> 
    </findbugs> 

    <fail if="findbugsFailure"> 

    </target> 
+0

次の2つの実行、ビルドを停止する必要があり、警告のための1つ、といけない警告の一つにFindBugsのを分割したい場合があります。 –

+0

私はANTの初心者ですので、例を挙げてください。 – Manikandan

+0

また、 "setExeitCode"が "true"(これがデフォルトです)に設定されている場合、warningsPropertyが正しく設定されているように注意してください。 – olenz

2

代替アイデア(そして努力する価値がある)SonarをあなたのANT buildプロセスに追加します。

SonarはFindbugs(およびcheckstyleとPMD)を統合し、ビルドブレーカープラグインを使用して任意の条件セットに対してビルドに失敗するように集中的に設定できます。参照:

How do I make Hudson/Jenkins fail if Sonar thresholds are breached?

関連する問題