表題の通り、checkstyleをコマンドラインから実行し、循環的複雑度のレポートをXML形式で作成する手順を示します。
① checkstyleのjarファイルの取得
GitHubのcheckstyleレポジトリのリリースページからcheckstyleのjarファイルをダウンロードします。
② 設定XMLファイルの作成
以下のような設定XMLファイルを準備します。
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" "https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name = "Checker">
<module name="TreeWalker">
<module name="CyclomaticComplexity">
<property name="max" value="0"/>
</module>
</module>
</module>
循環的複雑度以外の情報は不要なため、循環的複雑度用の設定だけを記載しています。また、max=0とすることで、循環的複雑度の値にかかわらず、すべてのメソッドの循環的複雑度を取得できます。
③ checkstyleの実行
checkstyleコマンドラインから実行して、XML形式のレポートを作成します。
java -jar path\to\checkstyle-10.12.5-all.jar ^
-c path\to\config.xml ^
-f xml ^
-o path\to\cc_report.xml ^
path\to\source
実行結果は次のようになります
path\to\report.xml
<?xml version="1.0" encoding="UTF-8"?>
<checkstyle version="10.12.5">
<file name="path\to\source\package001\A001.java">
<error line="11" column="1" severity="error" message="循環的複雑度が 1 (最大 0 まで)です。" source="com.puppycrawl.tools.checkstyle.checks.metrics.CyclomaticComplexityCheck"/>
</file>
<file name="path\to\source\package002\B002.java">
<error line="22" column="2" severity="error" message="循環的複雑度が 2 (最大 0 まで)です。" source="com.puppycrawl.tools.checkstyle.checks.metrics.CyclomaticComplexityCheck"/>
<error line="33" column="3" severity="error" message="循環的複雑度が 3 (最大 0 まで)です。" source="com.puppycrawl.tools.checkstyle.checks.metrics.CyclomaticComplexityCheck"/>
</file>
</checkstyle>