Kotlin 1.1.61 + Spring で Web Application を作る (4 of 4)


Kotlin 1.1.61 + Spring で Web Application を作る (3 of 4) の続きです。

Gradle を Kotlin で書く

build.gradle を Kotlin で書く

build.gradle も Kotlin で書けます。 build.gradle と同じ階層に build.gradle.kts を作り、 下のように記述します。

そして、 build.gradle を削除します。 ./gradlew clean && ./gradlew bootrun をやって正常にサーバが起動すれば成功です。

Gradle 4.0 より前のバージョンを使っている場合は settings.gradle の最後に1行書き加えます。 Kotlin DSL v0.9.0 から rootProject.buildFileName の設定をしなくても、 build.gradle.kts が使えるようになり。 Gradle 4.0 に取り込まれました。

settings.gradle も Kotlin で書く

Kotlin DSL v0.13.1 から settings.gradle.kts が使えるようになりました。 Gradle 4.4 RC1 から取り込まれています。 Intellij IDEA では、 Kotlin のプラグイン 1.1.60-eap-43 からサポートされています。

そこで、Gradle のバージョンをアップグレードします。

バージョン 4.4 RC 1 以前の Gradle でもビルドはできます。 しかし、 settings.gradle.kts が有効に使われません。

次に、 settings.gradlesettings.gradle.kts へ名前変更します。 2つ注意点があります。 1つ目は文字列の扱いです。 settings.gradle では シングルクオートでも、ダブルクオートでも文字列を記述することができましたが、 Kotlin ではダブルクオートで文字列を表します。そこで rootProject.name の記述を変更します。

変更前 rootProject.name = 'myapp'
変更後 rootProject.name = "myapp"

2つ目は rootProject の型です。 このままでも問題なく動くのですが、 Intellij IDEA 上の表示では rootProject が Project インターフェース として認識されるため、赤波線が表示されます。 Project インターフェース には setName メソッド がありません。

そこで rootProject を ProjectDescriptor にキャストします。

変更後 (rootProject as ProjectDescriptor).name = "myapp"

settings.gradle を Kotlin で書くために いくつか変更を行いましたが、 これは後のアップグレードされた Gradle では不要となります。