Gradleプラグインを作ってみた #groovy #gradle

概要

これまでMavenを中心に使ってきたんだけど、今のチームではGradleを採用している。

Gradle始めて使ってみてるので、試しにプラグインを作ってみた。

どんなプラグイン

github.com

ざっくりいうとただ指定したディレクトリ配下にあるSQLファイルを実行するだけのプラグイン

SQLファイルは構成管理に乗せるようなやつはFlywayなりで扱うと思うんだけど、構成管理に乗らないようなテストデータとかを流すやつがあったら便利じゃないかなと思ったのがきっかけ。

まぁすでにもっと便利なものがどこかにありそうだし、その程度のものならわざわざプラグインにしなくてもいいと思うけど、練習の意味もあるし作りたいから作ったという感じ。

GradleのプラグインポータルにもPublishしてある。

Gradle - Plugin: red.sukun1899.wanko

ハマったところ

JdbcDriverの依存は利用側で設定するようにしたかったのだが、プラグイン側でClassNotFoundExceptionが発生してしまった。

結局後述のリンクを参考に、build.gradleを読み込んでロードするようにした。

def loader = Sql.classLoader
project.buildscript.configurations.classpath.each { File file ->
    loader.addURL(file.toURI().toURL())
}

こんな感じ。 当該コードは下記。

wanko-gradle-plugin/WankoRunTask.groovy at master · su-kun1899/wanko-gradle-plugin · GitHub

参考にしたのは下記。

テスト

テストは下記スライドがとても参考になった。

テストを書いてGradleプラグインの開発効率を改善しよう