目次
Kotlin で build.gradle を書く方法をまとめました。 シンプルなプロジェクトを考えます。
環境
- Kotlin 1.2.0
- Gradle 4.4 RC 5
必須条件
build.gradle
を Kotlin で書くためには Gradle 3.0 M 1 以上が、 settings.gradle.kts
を Kotlin で書くには Gradle 4.4 RC1 以上が必要になります。
build.gradle
こちらは私がやっているプロジェクトでの例です。 Kotlin で書くと次のようになります。
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 |
import org.gradle.api.* import org.gradle.kotlin.dsl.* import org.gradle.plugin.* import org.gradle.script.lang.kotlin.* import org.jetbrains.kotlin.gradle.tasks.KotlinCompile group = "com.improve_future" 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") } } apply { plugin("kotlin") } repositories { mavenCentral() jcenter() } dependencies { val kotlinVersion = extra["kotlin_version"] as String compile("org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlinVersion") } tasks.withType<KotlinCompile>(KotlinCompile::class.java).all { kotlinOptions { jvmTarget = "1.8" } } |
Gradle 4.0 RC1 からは Kotlin DSL 0.9.0 が取り込まれているので必要ないのですが、 それより前のバージョンの Gradle を使っている場合は、 settings.gradle
に次の記述を書き足す必要があります。
1 |
rootProject.buildFileName = 'build.gradle.kts' |
filter を使った例は Spring Boot のアプリケーションを AWS EC2 にデプロイする手順 にあります。
settings.gradle
こちらは Groovy の場合とあまり変わりありません。
1 |
(rootProject as ProjectDescriptor).name = "backlog_board" |
Intellij IDEA の場合、 rootProject
が getName
メソッド を持たないインターフェースとして認識されてしまうためキャストしています。 キャストしなくてもビルドは通ります。