blob: d9a12ea745dbab099acc5f49ddd0e48ddade0a7a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*******************************************************************************
* Copyright (c) 2010 Intalio Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* David Carver (Intalio) - initial API and implementation
*******************************************************************************/
-->
<project name="Build Utilities">
<property name="downloadDir" location="${basedir}/downloads" />
<property name="libs" location="${basedir}/lib" />
<available file="${downloadDir}/findbugs.zip" property="findBugsAvailable" />
<available file="${downloadDir}/pmd.zip" property="pmdAvailable" />
<target name="init">
<mkdir dir="${downloadDir}" />
</target>
<target name="findbugs.init" depends="init" unless="findBugsAvailable">
<get src="http://downloads.sourceforge.net/project/findbugs/findbugs/1.3.9/findbugs-1.3.9.zip" dest="${downloadDir}/findbugs.zip" />
<unzip src="${downloadDir}/findbugs.zip" dest="${libs}" />
</target>
<target name="findbugs" depends="findbugs.init" description="Run FindBugs against eclipse jars.">
<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask">
<classpath>
<path>
<fileset dir="${libs}/findbugs-1.3.9/lib" includes="*.jar" />
</path>
</classpath>
</taskdef>
<mkdir dir="findbugs" />
<copy todir="findbugs">
<fileset dir="../../plugins">
<include name="**/org.eclipse.*/**/*-SNAPSHOT.jar" />
</fileset>
</copy>
<findbugs home="${libs}/findbugs-1.3.9/lib" output="xml" outputFile="${basedir}/fb.xml">
<class location="findbugs" />
</findbugs>
<delete dir="findbugs" failonerror="false" />
</target>
<target name="pmd.init" depends="init" unless="pmdAvailable">
<get src="http://downloads.sourceforge.net/project/pmd/pmd/4.2.5/pmd-bin-4.2.5.zip" dest="${downloadDir}/pmd.zip" usetimestamp="true" />
<unzip src="${downloadDir}/pmd.zip" dest="${libs}" />
</target>
<target name="dry" depends="pmd.init" description="Run Duplicate Code Detector against eclipse source code">
<taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask">
<classpath>
<path>
<fileset dir="${libs}/pmd-4.2.5/lib" includes="*.jar" />
</path>
</classpath>
</taskdef>
<cpd minimumTokenCount="100" format="xml" outputFile="dry-report.xml">
<fileset dir="../../plugins">
<include name="**/org.eclipse.*/**/*.java" />
<exclude name="**/StringLexer.java"/>
<exclude name="**/XMLLexer.java"/>
<exclude name="**/XQueryLexer.java"/>
<exclude name="**/XQueryParser.java"/>
</fileset>
</cpd>
</target>
<target name="pmd" depends="pmd.init" description="Run PMD Static Code Analysis against eclipse source code">
<path id="pmd.path">
<fileset dir="${libs}/pmd-4.2.5/lib">
<include name="*.jar" />
</fileset>
</path>
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.path"/>
<pmd failonerror="true" encoding="utf-8" shortFilenames="true">
<ruleset>basic</ruleset>
<ruleset>braces</ruleset>
<ruleset>clone</ruleset>
<ruleset>finalizers</ruleset>
<ruleset>imports</ruleset>
<ruleset>strings</ruleset>
<ruleset>codesize</ruleset>
<ruleset>unusedcode</ruleset>
<formatter type="xml" toFile="pmd-report.xml" />
<fileset dir="../../plugins">
<include name="**/*.java" />
<exclude name="**/StringLexer.java"/>
<exclude name="**/XMLLexer.java"/>
<exclude name="**/XQueryLexer.java"/>
<exclude name="**/XQueryParser.java"/>
</fileset>
</pmd>
</target>
</project>