こんばんはこんにちは、フリューのジョンです。
この記事はフリューAdvent Calendar 2018の12/13分となります。

2018/12/15 JJUG CCC 2018 Fall にて 既存アプリケーションでKotlinを導入してみた というタイトルで登壇します。
そのKotlinつながりでGradle Kotlin DSLについて書こうと思います。

Kotlin DSLとは

さてさてGradleのところを調べていると最近Kotlinという単語を見るようになりました。
どうやら Groovyではなく KotlinのDSLで書こうということらしいです。
個人的に触って感じているメリットとしては、「アプリケーションがKotlinならそのままKotlinでタスクなどを記述できる」という点でしょうか。
既存の書き方より優れている点は今のところは思い当たらないです。

Gradleプロジェクトを作成しよう

Gradle Initializrを使ってみましょう。 せっかくだからKotlinプロジェクトを選択します。

スクリーンショット 2018-12-12 11.40.30

downloadできたzipファイルを解凍して、IntelliJで開いてApp.ktにあるmain関数を実行してみましょう。

スクリーンショット 2018-12-12 13.42.30

Hello Worldとコンソールにでましたね。とりあえず、Gradleプロジェクトとしてアプリケーションが作成できていそうです。

Gradleタスクを書いてみよう

以下のようにbuild.gradle.ktsにタスクを追加してみましょう

// build.gradle.kts
tasks {
task("helloWorld") {
doLast { println("hello kotlin dsl world") }
}
}

動かしてみましょう。

$ ./gradlew helloWorld

以上です。hello kotlin dsl worldと表示されましたか?

まとめ

1.0になって間もなく、IntelliJで開いてもエラーと表示されているなど、使っていると壁にぶつかるところは多いと思います。
なので、本当に頑張る場合は、公式のサンプルを見比べながらタスクを作成してみてください。

Kotlin DSLガイド
Kotlin DSLサンプル