ソースチェック系プラグインの追加

Jenkins実践入門WEB+DB PRESS Vol.67を読んだ。
PMD,CPD,jslint,csslintもついでに設定してみた。
プロジェクトは
Jenkins実践入門のサンプルプロジェクトを利用。


PMD,CPD

ライブラリをRedirecting...からダウンロード。
build/lib/pmd配下にjarファイルを格納。

ls -1 lib/pmd/
asm-3.2.jar
jaxen-1.1.1.jar
junit-4.4.jar
pmd-4.2.6.jar

build.xml

<property name="lib.pmd.dir" location="./lib/pmd" />
<path id="pmd.classpath">
	<fileset dir="${lib.pmd.dir}">
		<include name="*.jar"/>
	</fileset>
</path>
<target name="pmd">
	<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath" />
	<mkdir dir="${report.dir}/pmd" />
	<pmd shortFilenames="true">
		<ruleset>basic</ruleset>
		<formatter type="xml" toFile="${report.dir}/pmd/pmd.xml"/>
		<fileset dir="${java.src.dir}">
			<include name="**/*.java" />
		</fileset>
	</pmd>
</target>
<target name="cpd">
	<taskdef name="cpd" classname="net.sourceforge.pmd.cpd.CPDTask" classpathref="pmd.classpath" />
	<mkdir dir="${report.dir}/cpd" />
	<cpd minimumTokenCount="10" format="xml" outputFile="${report.dir}/cpd/cpd.xml">
		<fileset dir="${java.src.dir}">
			<include name="**/*.java"/>
		</fileset>
	</cpd>
</target>

PMD Plug-in と Duplicate Code Scanner Plug-in をインストール
プロジェクトの設定で
「PMD警告の集計」-「集計するファイル」build/report/pmd/pmd.xml
「重複コード分析の集計」-「集計するファイル」build/report/cpd/cpd.xml
を指定。


jslint
Google Code Archive - Long-term storage for Google Code Project Hosting.からjslint4java-[version].jarをダウンロード。
build/lib/junit配下にjarファイルを格納。

build.xml

<taskdef name="jslint"
		 classname="com.googlecode.jslint4java.ant.JSLintTask"
		 classpath="${lib.junit.dir}/jslint4java-2.0.2.jar" />
<target name="jslint" description="Run the JSLint tool on JS files">
	<mkdir dir="${report.dir}/jslint" />
	<jslint options="white,undef,plusplus,newcap,vars,indent=4,sloppy" haltOnFailure="false">
		<predef>jQuery, setTimeout, history, window, document</predef>
		<formatter type="xml" destfile="${report.dir}/jslint/jslint.xml" />
		<fileset dir="./web/js">
			<include name="**/*.js" />
			<exclude name="**/*.min.js" />
		</fileset>
	</jslint>
</target>

Jenkins Violations pluginをインストール。
プロジェクトの設定で
「Report Violations」-「jslint]の「XML filename pattern」にbuild/report/jslint/jslint.xml
を指定。


csslint
GitHub - CSSLint/csslint: Automated linting of Cascading Stylesheetsからcsslint-rhino.jsとjs.jarをダウンロードしbuild/lib/csslint配下に格納。

ls -1 csslint/
csslint-rhino.js
js.jar

build.xml

<property name="lib.csslint.dir" location="./lib/csslint" />
<target name="csslint" description="Run the CSSLint tool on CSS files">
    <fileset dir="./web/css" id="cssfiles.raw">
		<include name="**/*.css" />
    </fileset>
    <pathconvert pathsep=" " property="cssfiles.clean" refid="cssfiles.raw"
				 />
	<mkdir dir="${report.dir}/csslint" />
    <exec executable="java" output="${report.dir}/csslint/csslint.xml">
		<arg line="-jar ${lib.csslint.dir}/js.jar ${lib.csslint.dir}/csslint-rhino.js --rules=errors --format=lint-xml  ${cssfiles.clean}" />
    </exec>
</target>

プロジェクトの設定で
「Report Violations」-「csslint]の「XML filename pattern」にbuild/report/csslint/csslint.xml
を指定。