GeekFactory

int128.hatenablog.com

Gradleプラグインのテンプレートプロジェクトを公開します #gadvent

G*Advent Calendar(Groovy,Grails,Gradle,Spock...) Advent Calendar 2014 - Qiitaの9日目です。

GradleはビルドスクリプトをGroovy DSLで書くため、現実のプロジェクトで複雑な問題が発生した場合に柔軟に対処できる特徴を持っています。現実のプロジェクトでは、Jarを生成する前にファイル処理を差し込みたいとか、Develpment/Productionでビルド内容を変えたいといった特殊な要件がしばしば発生します。こういった特殊な要件は、本来は開発フローやリリースフローを見直すことで解決すべきですが、どうしても解決できない泥臭いケースも存在します。Groovyを書けば何でもできてしまうところがGradleの素晴らしいところであり、また、闇でもあります。

そして、ビルドスクリプトに複雑な処理を書いているうちに、それを汎用化して管理したいという欲が生まれます。Gradleはpluggableなアーキテクチャを採用しており、プラグインを追加することで誰でも機能拡張できる仕組みになっています。したがって、使い回しの利く汎用的な処理をプラグインに切り出しておくことで、別のプロジェクトで似たようなスクリプトを書く手間が省けます。

Gradleプラグインの作り方はすでに多くの記事があるので...

本稿では、Gradleプラグインのテンプレートプロジェクトを紹介します。このプロジェクトは以下を実装してあります。

GitHubから git clone https://github.com/int128/gradle-plugin-blank.git するだけで、すぐにプラグインの開発を始められます。これまでのGradle SSH Pluginの開発で培ったノウハウを注ぎ込んだものなので、ぜひご活用ください。

自分でGradleプラグインを作るという奇特な人に向けたマニアックな記事でしたが、参考になりましたら幸いです。

Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築

Gradle徹底入門 次世代ビルドツールによる自動化基盤の構築