Kotlin 1.2.0 + Spring で Web Application を作る (3 of 4) の続きです。
Gradle を Kotlin で書く
build.gradle を Kotlin で書く
build.gradle も Kotlin で書けます。 build.gradle と同じ階層に build.gradle.kts を作り、 下のように記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile group = "com.task" version = "1.0-SNAPSHOT" buildscript { val kotlinVersion = "1.2.0" extra["kotlin_version"] = kotlinVersion repositories { mavenCentral() } dependencies { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") } } plugins { id("org.springframework.boot") version "1.5.8.RELEASE" } apply { plugin("kotlin") } repositories { mavenCentral() jcenter() } dependencies { val kotlinVersion = extra["kotlin_version"] as String compile("org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlinVersion") compile("org.springframework.boot:spring-boot-starter-web:1.5.8.RELEASE") compile("org.springframework.boot:spring-boot-starter-data-jpa") compile("org.postgresql:postgresql:42.1.4") val kotlinxHtmlVersion = "0.6.6" compile("org.jetbrains.kotlinx:kotlinx-html-jvm:$kotlinxHtmlVersion") } tasks.withType<KotlinCompile>(KotlinCompile::class.java).all { kotlinOptions { jvmTarget = "1.8" } } |
そして、 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 から取り込まれています。
1 2 3 |
rootProject.name = 'myapp' // Gradle 4.0 より前で 追加が必要だった行 rootProject.buildFileName = 'build.gradle.kts' |
Kotlin DSL v0.13.1 から settings.gradle.kts
が使えるようになりました。 Gradle 4.4 RC1 から取り込まれています。 Intellij IDEA では、 Kotlin のプラグイン 1.1.60-eap-43 からサポートされています。
settings.gradle
を settings.gradle.kts
へ名前変更します。 1つ注意点があります。文字列の扱いです。 settings.gradle
では シングルクオートでも、ダブルクオートでも文字列を記述することができましたが、 Kotllin ではダブルクオートで文字列を表します。そこで rootProject.name
の記述を変更します。
変更前 | rootProject.name = 'myapp' |
---|---|
変更後 | rootProject.name = “myapp” |
ここまでのコードは GitHub: Kotlin 1.2.0 Spring Sample で公開しています。