FindBugs
FindBugs is installed on the build server:
- /shared/common/findbugs-1.3.9/
Using FindBugs from Maven
Using FindBugs from Ant
An example of running FindBugs from Sapphire build.
ant findbugs -Dfindbugs.location=/shared/common/findbugs-1.3.9/
<target name="findbugs" depends="init"> <findbugs/> </target> <macrodef name="findbugs"> <sequential> <if> <not><isset property="findbugs.output"/></not> <then> <if> <available file="${build.dir}/findbugs"/> <then> <echo message="Found existing findbugs output..."/> <var name="findbugs.output" value="${build.dir}/findbugs"/> </then> </if> </then> </if> <if> <not><isset property="findbugs.output"/></not> <then> <build-repository/> <property name="findbugs.output" value="${build.dir}/findbugs"/> <delete dir="${findbugs.output}" quiet="true"/> <mkdir dir="${findbugs.output}"/> <taskdef name="findbugs-task" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"> <classpath> <fileset dir="${findbugs.location}/lib"> <include name="*.jar"/> </fileset> </classpath> </taskdef> <with-target-platform configuration="${configuration.recommended}"> <pathconvert property=".aux.xml" pathsep="</AuxClasspathEntry>
<AuxClasspathEntry>"> <path> <fileset dir="${.target.platform}/plugins"> <include name="**/*.jar"/> </fileset> </path> </pathconvert> </with-target-platform> <pathconvert property=".source.xml" pathsep="</SrcDir>
<SrcDir>"> <path> <dirset dir="${root.dir}/plugins" includes="*/src"/> </path> </pathconvert> <pathconvert property=".jars.xml" pathsep="</Jar>
<Jar>"> <path> <fileset dir="${build.dir}/repository/plugins"> <include name="org.eclipse.sapphire*.jar"/> <exclude name="*.source_*.jar"/> <exclude name="*.nl_re_*.jar"/> </fileset> </path> </pathconvert> <echo file="${findbugs.output}/project.xml"> <BugCollection> <Project filename="findbugs.project" projectName="Sapphire"> <Jar>${.jars.xml}</Jar> <AuxClasspathEntry>${.aux.xml}</AuxClasspathEntry> <SrcDir>${.source.xml}</SrcDir> <SuppressionFilter> <LastVersion value="-1" relOp="NEQ"/> </SuppressionFilter> </Project> </BugCollection> </echo> <var name=".aux.xml" unset="true"/> <var name=".source.xml" unset="true"/> <var name=".jars.xml" unset="true"/> <findbugs-task home="${findbugs.location}" projectFile="${findbugs.output}/project.xml" excludeFilter="${root.dir}/findbugs-excludes.xml" output="xml" outputFile="${findbugs.output}/result.xml" timeout="2400000" jvmargs="-Xmx1024m -XX:MaxPermSize=256m"/> </then> </if> </sequential> </macrodef> <target name="clean-findbugs" depends="init"> <delete dir="${build.dir}/findbugs" quiet="true"/> <var name="findbugs.output" unset="true"/> </target>