では、QALabの使い方です。
あらかじめ、チェック結果をXMLとして出力しておく必要があります。
参照ページ : CheckstyleをAntから使用する
Antを利用します。まず、build.xmlでQALab要素を使えるようにするために
以下を記述します。
<taskdef name="mergestat" classname="net.objectlab.qalab.ant.BuildStatMergeTask">
<classpath>
<pathelement location="${lib}/qalab-0.7.2.jar" />
<pathelement location="${lib}/xercesImpl-2.6.2.jar" />
<pathelement location="${lib}/jcommon-0.9.6.jar" />
<pathelement location="${lib}/jfreechart-0.9.21.jar" />
<pathelement location="${lib}/log4j.jar" />
</classpath>
</taskdef>
各種パスの位置は環境に応じて変更して下さい。
Tomcatなどに付属しているので、それを使えば良いでしょう。
http://www.jfree.org/jfreechart/ からダウンロードします。
http://www.jfree.org/jcommon/ からダウンロードします。
jfreechartをダウンロードすれば一緒に付いています。
http://logging.apache.org/ からダウンロードします。
各種ライブラリのバージョンは上記と異なっていても構いません。
最新のものを使っていれば問題無いはずです。
Checkstyle等から出力されたチェック結果xmlファイルを用意します。
そしたら、以下の要素をbuild.xmlに記述しましょう。
<tstamp>
<format property="TIME" pattern="yyyy-MM-dd HH:mm:ss"/>
</tstamp>
<mergestat inputFile="${doc}/checkstyle-output.xml"
outputFile="qalab.xml"
srcDir="${java.src.dir}"
handler="net.objectlab.qalab.parser.CheckstyleStatMerge"
mergerTimeStamp="${TIME}"/>
mergestat#inputFile で指定したファイルからチェック結果を取得してmergestat#outputFile で指定したQALab用履歴ファイルに追加出力します。
なお、履歴ファイルは存在しなければ新規で作成されますので
事前のファイル生成は必要ありません。
mergestat#handler は、Checkstyle以外のチェック結果を利用するときは
それに応じて変更します。
複数のチェック結果をqalab.xmlに追加したい場合は、mergestat 要素を複数用意することになります。
さて、上でqalab.xmlへの出力が完了したら
いよいよそれを元にHTMLを生成することにします。
これもいたって簡単です。
まずは、HTMLで使用するグラフを生成しましょう。
<taskdef name="buildchart" classname="net.objectlab.qalab.ant.BuildStatChartTask">
<classpath>
<pathelement location="${lib}/qalab-0.7.2.jar" />
<pathelement location="${lib}/xercesImpl-2.6.2.jar" />
<pathelement location="${lib}/jcommon-0.9.6.jar" />
<pathelement location="${lib}/jfreechart-0.9.21.jar" />
<pathelement location="${lib}/log4j.jar" />
</classpath>
</taskdef>
<buildchart inputFile="qalab.xml"
toDir="${doc}/style/charts"
width="500" height="333"
summaryOnly="false"
type="checkstyle"
quiet="true"/>
buildchart#toDir で指定したディレクトリに、各種グラフが生成されます。
Javaファイル毎に画像ファイルが作られるので、ファイルが多いときは
結構な時間が掛かるかもしれません。
buildchart#type には、使用するライブラリをカンマ区切りで指定します。
checkstyle / pmd / simian / findbugs / cobertura-line / cobertura-branch
が使用できます。
グラフを作成したら、最後にHTMLを生成しましょう。
<tstamp>
<format property="TIME" pattern="yyyy-MM-dd" offset="-48" unit="hour"/>
</tstamp>
<style in="qalab.xml" out="hist.html" style="qalab-chart-html.xsl">
<param name="basedir" expression="${src.dir}"/>
<param name="module_srcdir" expression="src"/>
<param name="type" expression="checkstyle"/>
<param name="offset" expression="${TIME}"/>
</style>
qalab-chart-html.xsl は、QALabバイナリにサンプルが用意されているので
これを使います。
checkstyleのページでも説明したように、style#out で指定したファイルには何も出力されません。
実際に使用するファイルは history.html になります。
format#offset が-48となっているのは間違いではありません。
これによって、HTMLファイルに「過去2日分の履歴」が出力されることになります。
ここらへんの詳細はxslファイルを見てみるとわかると思います。