Google's Java Style の CheckStyle を使う
Google's Java Style Checkstyle の導入
Java の静的解析ツールの一つである Checkstyle は便利なものなんだけど、デフォルトの設定だと警告があがりすぎて正直ウザい。
なので、ちょこちょこと設定の微調整を行う必要があるんだけど、これがまた面倒くさい。
なにか便利なやり方はないかと探していたら、Checkstyle の公式サイトで Google Java Style 用の設定が配布されていることに気付いた。
XML ファイルがダウンロードできるので、これを使うのが便利そうだ。
Google's Java Style Checkstyle の微調整
とはいえ、これもそのまま使うには気になるところがいくつか。何点かの微調整を行う。
- パッケージ名にアンダースコアを使いたいときがあるので、パッケージ名のチェックを除外する。
<!-- <module name="PackageName"> <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> <message key="name.invalidPattern" value="Package name ''{0}'' must match pattern ''{1}''."/> </module> -->
<!-- <module name="Indentation"> <property name="basicOffset" value="2"/> <property name="braceAdjustment" value="0"/> <property name="caseIndent" value="2"/> <property name="throwsIndent" value="4"/> <property name="lineWrappingIndentation" value="4"/> <property name="arrayInitIndent" value="2"/> </module> -->
- Javadoc 一行目の概要チェックが句点「。」に対応していないので、このチェックを除外。
<!-- <module name="SummaryJavadocCheck"> <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/> </module> -->
これで OK。
ちなみに
Want to use other letter for end of sentence. · Issue #472 · checkstyle/checkstyle · GitHub によると v6.2 から文末記号を指定できるようになったらしいんだけど、プラグインのほうがまだ対応していないのが多いみたい。
<module name="SummaryJavadocCheck"> <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/> <property name="period" value="。"/> </module>