UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Kotlin】build.gradle.kts について

作成したKotlinプロジェクトを見ると、直下に build.gradle.kts というファイルができる

これが何か調べた

build.gradle.ktsとは?

build.gradle.kts は、Kotlin で書かれた Gradle スクリプト

通常の build.gradle ファイルは Groovy で記述されているが、Kotlin を使って記述することで、IDE における型安全やオートコンプリートといった Kotlin の利点を得ることができる

基本構造

build.gradle.kts は Kotlin の構文を使用しているため、Groovy ベースの build.gradle ファイルといくつかの違いがある

基本的な構造は以下

プロジェクト設定

plugins {
    kotlin("jvm") version "1.8.0" // KotlinのJVMターゲットを使うプラグイン
    application // アプリケーションプラグインを使う
}

group = "com.example" // プロジェクトのグループ
version = "1.0-SNAPSHOT" // プロジェクトのバージョン

plugins ブロックで使うプラグインを定義し、groupversion を設定する方法は Groovy と似ているが、Kotlin の構文を使っている

依存関係の定義

依存関係は dependencies ブロックで設定する

この時、Kotlin を使用するための kotlin("...") 関数が使える

dependencies {
    implementation(kotlin("stdlib")) // Kotlin標準ライブラリ
    testImplementation(kotlin("test")) // テスト用の依存関係
}

依存関係を追加する際、implementationtestImplementation の部分は同じだが、Kotlin の型安全な方法で定義する

タスクの定義

tasks ブロック内で、カスタムタスクを定義したり、既存のタスクを変更したりできる

Kotlin では、ラムダ式型推論を活かした記述が可能

tasks.register("hello") {
    doLast {
        println("Hello, Kotlin!")
    }
}

プロパティの参照

Kotlin スクリプト内では、プロジェクトのプロパティや他のタスクの出力などを簡単に参照できる

val isProduction: Boolean by project
val outputDir = project.layout.buildDirectory.dir("output")