Pear PHP DependのスピンオフプロジェクトでもあるPHPMD(PHP Mess Detector)をjenkinsで利用してみる
1.pearチャネルの登録
$ sudo pear channel-discover pear.pdepend.org $ sudo pear channel-discover pear.phpmd.org
2.依存モジュールの追加
$ sudo pear install pdepend/PHP_Depend
3.PHPMDの追加
$ sudo pear install --alldeps phpmd/PHP_PMD
4.コマンドラインで利用してみる
$ phpmd /path/to/target/ xml codesize,unusedcode,design,naming --reportfile phpms.xml
成功するとphpms.xmlが生成される
5.Jenkins側にプラグインをインストール
プラグインマネージャーから「PMD Plugin」をインストールする
6.ビルド用のファイルを用意する
前回用意したbuildファイルを以下のように修正して利用してみる。
/path/to/svn/projectname/trunk/build.xml
<?xml version="1.0" encoding="utf-8" ?> <project name= "BuildTest" basedir= "." default= "main"> <target name="main" depends= "init,phpcs,phpmd"></target> <!-- init --> <target name="init" > <delete dir= "./reports" includeemptydirs= "true" /> <mkdir dir= "./reports" /> </target> <!-- checksytle --> <target name="phpcs" description= "Generate phpcs.xml using PHP_CodeSniffer" > <exec executable="phpcs" output="${basedir}/reports/phpcs.xml" > <arg line=" --report=checkstyle --standard=CakePHP --extensions=php /path/to/app" /> </exec> </target> <!-- PHPMD --> <target name="phpmd" > <phpmd rulesets= "codesize,unusedcode,design,naming" > <fileset dir= "/path/to/app/" > <include name= "**/*.php" /> <exclude name= "**/*Test.php" /> </fileset> <formatter type= "xml" outfile= "reports/pmd.xml"/> </phpmd> </target> </project>
7.プロジェクトの設定
設定>ビルド後の処理から、PMD警告の集計にチェックを入れ、集計するファイルにreports/pmd.xmlと記述
8.ビルドの実行をする
プロジェクトページから「ビルド実行」を選択
問題なくビルドされていれば、左ナビに「PMD警告」へのリンクが表示され、2回以降のビルド後には、プロジェクトトップにPMD警告の推移が表示される。