Checkstyleのツールバージョンアップで詰まった話

こんにちは。 エキサイト株式会社の三浦です。

皆さんは、Checkstyleを使っていますか?

checkstyle.org

Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard.

Checkstyleは、端的に言えば、対象のコードがコーティング規約に則っているかをチェックしてくれるツールです。

Gradleではこのように設定できます。

checkstyle {
    configFile = rootProject.file("path/to/file.xml")
    toolVersion = "10.0" // 使用したいCheckstyleのバージョン
    sourceSets = [project.sourceSets.main]
}

このtoolVersionについて、今回機会があってバージョンアップすることになりました。

checkstyle {
    configFile = rootProject.file("path/to/file.xml")
    toolVersion = "10.7" // バージョンアップ
    sourceSets = [project.sourceSets.main]
}

一見問題なさそうに見えるのですが、これだと以下のようなエラーが出てしまいます。

Could not find com.puppycrawl.tools:checkstyle:10.7.

実はCheckstyleは、 10.5 系から、 10.5.0 のようにパッチバージョンまで指定しないといけなくなったようです。

github.com

checkstyle {
    configFile = rootProject.file("path/to/file.xml")
    toolVersion = "10.7.0" // パッチバージョンまで指定
    sourceSets = [project.sourceSets.main]
}

これで正しく動くようになります。

それまではパッチバージョンは、 *.*.1 のように、0以外の場合しか指定しなかったので詰まりやすいのではないでしょうか。

Checkstyleを使っている方で、 10.5 系以上のバージョンを使う場合はご注意ください。