きっかけ
うちの会社は組み込み系メインなので、開発手法が何をやっても古い→とりあえずCIの導入からでも・・・
ということで自分のローカル環境でJenkinsを試し始めたところです。
Doxygenで関数仕様書を自動で作るのはできたので次にコード解析にとりかかるかなー
と思って重複コード解析にCPDを使い始めたところ、以下のことが起こったのでメモします。
(イマイチ発生理由が分からないまま直ったのでモヤモヤ~っとしたというのもメモの理由)
CPDとは:PMD(以下Wikipedia参照)の中のツール
http://ja.wikipedia.org/wiki/PMD_%28%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%29
起こった問題
ここの手順のもと、まずはコマンドラインで
c:\hoge\pmd-bin-5.2.3\bin>cpd --minimum-tokens 5 --files C:\fuga\Project\src --language c --format xml>result.xml
と実行してみたところ、以下のようにNullPointerExceptionが。
解決
これもしかして手詰まりかなぁ(弱気?)とか思いつつ調べて試したりはしたんですけどなかなか解決せず。
そんでちょっと「ん?」となったこれ(公式のSourceforgeです)の引数の記述に、
--format net.sourceforge.pmd.cpd.XMLRenderer
といったcpdの中のXML生成クラス?みたいなの使ってるのを見つけたので
今まで--format xmlと書いていたところをそのように置き換えたら・・・

正常に動きました・・・
生成されたxmlも見た感じ正常です。
余談
きっかけでも書いたように、弊社のホコリをかぶったような組み込みな開発を改善しようと、現在CI導入から進めています。
Web系やスマートフォン開発でCI導入する資料はいっぱいあるけど組み込み向けのCIな資料が少ない・・・
ただでさえエンジニアレベル低い自分には中々難しいけど仕事で楽したいし