JavaNCSSでソースコードがUTF-8の場合にエラー
ソースコードのメトリクスツールのひとつに、JavaNCSSがあります。JavaNCSSでは、以下の2つの指標を用いて、複雑性を分析します。
- NCSS(Non Commenting Source Statements)
- コメント行を除く行数
- CCN(Cyclomatic complexity Number(MaCabe Metric))
- if,for,while,case,catch などの条件文の数
Maven2でレポートを出力する場合は、pom.xmlの定義を以下のように指定します。
<reporting> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>javancss-maven-plugin</artifactId> <version>2.0-beta-2</version> </plugin> </plugins> </reporting>
ただ、ソースコードがUTF-8の場合にエラーとなってしまい、レポートが出力されずに困っています。
[INFO] ---------------------------------------------------- [ERROR] BUILD ERROR [INFO] ---------------------------------------------------- [INFO] Error during page generation Embedded error: Error rendering Maven report: Error while JavaNCSS was executing Encountered "int" at line 132, column 9. Was expecting one of: ";" ... "=" ... "++" ... "--" ... "+=" ... "-=" ... "*=" ... "/=" ... "&=" ... "|=" ... "^=" ... "%=" ... "<<=" ... ">>=" ... ">>>=" ... "." ... "[" ... "(" ... "<" ... ":" ... "enum" ... <IDENTIFIER> ...
エンコードを指定するようなパラメータがあるようなので、以下のように、pom.xmlを変更してみましたが、結果は変わらず。
<reporting> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>javancss-maven-plugin</artifactId> <version>2.0-beta-2</version> <configuration> <forceEncoding>utf-8</forceEncoding> </configuration> </plugin> </plugins> </reporting>
javancss-maven-pluginのJIRAにもバグとしてあがっているのだが、現在のところ未対応のまま。
次に、以下のページを参考にして、Maven2のオプションを指定してみたけど、今度は違ったエラーが発生します。
[INFO] ---------------------------------------------------- [ERROR] BUILD ERROR [INFO] ---------------------------------------------------- [INFO] Error during page generation Embedded error: Error rendering Maven report: Error while JavaNCSS was executing Lexical error at line 38, column 68. Encountered: "\r" (13), after : "\"[;b"
どうやら、一部の文字が誤って解釈されてしまうようです(上記は「名」という文字がCRとして解釈されている様子)。
JavaNCSSをコマンドラインから実行した場合でも、同様のエラーが発生するので、どうやらJavaNCSS本体の問題のようです。
うーん、困った・・・