This is an automated email from the ASF dual-hosted git repository. snagel pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nutch.git
commit e7a3da373ffb534d943e3911ffee52e8fdcb5691 Author: Sebastian Nagel <sna...@apache.org> AuthorDate: Thu Aug 6 19:24:35 2020 +0200 NUTCH-2816 Add Spotbugs target to ant build - called on-demand as ant target "spotbugs" - creates spotbugs report ("build/nutch-spotbugs.html") covering Nutch core and plugins --- build.xml | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/build.xml b/build.xml index 0f6807a..bbe4aaf 100644 --- a/build.xml +++ b/build.xml @@ -33,6 +33,9 @@ <property name="maven-javadoc-jar" value="${release.dir}/${artifactId}-${version}-javadoc.jar" /> <property name="maven-sources-jar" value="${release.dir}/${artifactId}-${version}-sources.jar" /> + <property name="spotbugs.version" value="4.1.1" /> + <property name="spotbugs.home" value="${basedir}/lib/spotbugs-${spotbugs.version}" /> + <property name="spotbugs.jar" value="${spotbugs.home}/lib/spotbugs-ant.jar" /> <!-- the normal classpath --> <path id="classpath"> @@ -1018,6 +1021,74 @@ </rat:report> </target> + <!-- ================================================================== --> + <!-- Spotbugs --> + <!-- ================================================================== --> + <target name="spotbugs-download" description="--> download spotbugs jar"> + <available file="${spotbugs.jar}" property="spotbugs.jar.found"/> + <antcall target="spotbugs-download-unchecked"/> + </target> + + <target name="spotbugs-download-unchecked" unless="spotbugs.jar.found" + description="--> downloads the spotbugs binary (spotbugs-*.tgz)."> + <get src="https://github.com/spotbugs/spotbugs/releases/download/${spotbugs.version}/spotbugs-${spotbugs.version}.tgz " + dest="${basedir}/lib/spotbugs-${spotbugs.version}.tgz" usetimestamp="false" /> + + <untar src="${basedir}/lib/spotbugs-${spotbugs.version}.tgz" + dest="${basedir}/lib/" compression="gzip"> + </untar> + + <delete file="${basedir}/lib/spotbugs-${spotbugs.version}.tgz" /> + </target> + + <taskdef + resource="edu/umd/cs/findbugs/anttask/tasks.properties" + classpath="${spotbugs.jar}" /> + + <target name="spotbugs" depends="jar, compile-plugins, spotbugs-download" description="--> runs spotbugs source code analysis."> + <spotbugs home="${spotbugs.home}" + output="html" + outputFile="${build.dir}/nutch-spotbugs.html" + projectName="Apache Nutch Spotbugs Analysis" + stylesheet="fancy-hist.xsl" > + <auxClasspath> + <!-- depency jars required for analysis but not analyzed (not our bugs) --> + <pathelement path="${basedir}/${build.dir}/lib"/> + <fileset dir="${basedir}/${build.dir}/plugins"> + <include name="**/*.jar"/> + </fileset> + </auxClasspath> + <sourcePath> + <fileset dir="${basedir}/src/java" /> + <fileset dir="${basedir}/src/plugin"> + <include name="*/src/java/**/*.java" /> + </fileset> + </sourcePath> + <!-- jars to be analyzed: --> + <!-- 1. apache-nutch-*.jar --> + <fileset dir="${build.dir}"> + <include name="${final.name}.jar" /> + </fileset> + <!-- 2. plugin jars, eg. build/feed/feed.jar --> + <fileset dir="${build.dir}/"> + <include name="*/*.jar" /> + <exclude name="lib/*.jar"/> + </fileset> + </spotbugs> + </target> + <path id="eclipse.classpath"> + <fileset dir="${build.lib.dir}"> + <include name="*.jar" /> + <exclude name="ant-eclipse-1.0-jvm1.2.jar" /> + </fileset> + <fileset dir="${build.plugins}"> + <include name="**/*.jar" /> + </fileset> + <fileset dir="${test.build.lib.dir}"> + <include name="*.jar" /> + </fileset> + </path> + <!-- ================================================================== --> <!-- Eclipse targets -->