GradleからCoffeeScript、LESS、Bowerを使うプラグインgradle-web-resource-pluginに続き、Javaプロジェクトの開発で使えるGradleプラグイン gradle-spelling-plugin を作ったので紹介。
これで何ができるかというと、ブラックリストに単語、表現を登録して、それを探していくだけ。
見つけた場合は、代わりにこれを使ってね、と警告する。
見つけた場合にビルドエラーとするかどうかは設定できる。
それだけ、ではあるのだけれど、ちょうどいいものが見つからなかったので作った。
Gradleを使い出すと、Gradleですべてチェックできるようにしたいと考えるようになる(たぶん)。
そして自動化したいと考える。
だから、grepしたりIDEで検索すればいいものだったとしてもGradleで使える形になっていることが大事。
内容的には以前Goで作ったfintとほぼ同じ。
fintの方はLintツール的な発想で作ったが、今回のものは似たような用語がバラバラとコメントなどに書かれていくのを人がレビューで見つけて修正していくのを避けたかった、という点で微妙に着想・目的が違う。
組み込みは、Gradle 2.1以降なら以下をbuild.gradleに書けばOK。
plugins {
id "com.github.ksoichiro.spelling" version "0.0.2"
}
設定は同じくbuild.gradleに
spelling {
excludes += 'build.gradle'
message "%1sではなく%2sにしてね"
definition {
rules {
define forbidden: 'Hoge', recommended: 'Fuga'
}
}
}
などとする。
チェックはinspectSpelling
というタスクで実行できるので、もしcheckタスクですべてチェックさせるルールにしているのであれば
check.dependsOn 'inspectSpelling`
としておけば
$ ./gradlew check
...
:inspectSpelling
/xxx/src/main/java/com/example/A.java:4: HogeではなくFugaにしてね
:inspectSpelling FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':inspectSpelling'.
> Spelling inspection failed: 1 violations found
というふうに、正しい用語を使うことを強制できる。