なるべく、わからないようにリリースしたつもりだったのですが、さすがGradleの日本の第一人者、綿引さんにすぐに見つかってしまいました。
@mike_neck さんのプラグインがポータルにあがっておる。https://t.co/YOdb34pLcK #jggug
— Takuma Watabiki (@bikisuke) 2015, 8月 15
Gradle - Plugin: org.mikeneck.rule-based-model-generation
Rule Based Model Configurationのインターフェースの制約
これ、結構ドキュメントがしっかりしていないので、インターフェースを書くのに、難しいところがあったりします。
それを簡単に解決するプラグインです。
まあ、webアプリを作ってる人にはほとんど関係無いです。
あくまでgradle pluginを作ってる人に使ってもらうようなプラグインです。
インターフェースの制約にはこのようなものがあります。
ModelSet<T>
のタイプT
には@Managed
なモデルインターフェースが設定されていないとコンパイルエラー- 他の
@Managed
なモデルを参照するフィールドに対してはセッターを設けると、データの定義ができない ModelSet<T>
にenum
を指定するとこれまたコンパイルエラー- というか、ここまでのデータタイプに対して
setter
、getter
のナニが必要だかわかりづらい
このあたり、僕が幾つか落とし穴を踏み抜いた結果、作ったプラグインです。
書き方などは、唯一のドキュメントであるREADME.md
を読んで下さい。
プラグインの導入
このプラグインは次のRequirementが設定されています。
- Gradle2.5以上
- Java 8以上
この条件を満たした上で、次のスクリプトをbuild.gradle
に記述します。
plugins { id 'org.mikeneck.rule-based-model-generation' version '0.1' }
モデルの設定
ドキュメント読んで下さい(手抜き)
出来上がるもの
generateModels
タスクによって、指定したディレクトリーのパッケージに指定した型をもったインターフェースが作成されます。
今後
インターフェースを作ったのはいいけど、テスト時にこれの実装クラスをいちいち作るのが面倒なので、これのPOJOを作るタスクを現在作成中です。
今後その2
これを用いてgradleTestKit
をサポートするクラスを自動生成するプラグインを作成しています。
それはこちらのレポジトリーにあります。
ごらんになればわかりますが、なにもコミットしていません。(ローカルではコミットしまくっている)
おそらく、2日後にプラグインポータルに載せられると思っています。
おわり。
最近Gradle芸人になりつつある…