KotlinスクリプトとGradleによるビルド自動化の基本【Kotlin入門⑭】

Kotlinスクリプト(Kotlin Script, .kts)とは?

Kotlinスクリプトの概要

Kotlinスクリプト(.kts)は、Kotlinのコードをスクリプトとして実行できる機能です。通常のKotlinファイル(.kt)と異なり、main関数を明示的に定義する必要がなく、スクリプトとして直ちに実行できます。

Kotlinスクリプトの活用例:

  • 簡単なユーティリティスクリプト
  • Gradleのビルドスクリプト
  • 設定ファイルの記述

Kotlinスクリプトの実行方法

Kotlinスクリプトは、kotlinc または kotlin コマンドを使用して実行できます。

# Kotlinスクリプトを直接実行
kotlin my_script.kts

以下のような簡単なスクリプトを作成し、実行できます。

println("Hello, Kotlin Script!")

Gradleとは?

Gradleの概要

Gradleは、KotlinやJavaのプロジェクトのビルドを自動化するためのツールです。Kotlin DSL(build.gradle.kts)を使用すると、Kotlinの構文でビルド設定を記述できます。

Gradleを使用すると、以下のようなタスクを自動化できます:

  • コンパイル(ソースコードのビルド)
  • 依存関係の管理(ライブラリの追加)
  • テストの実行
  • アーティファクトの作成(JAR, APK など)

Gradleのインストール

Gradleは公式サイト(https://gradle.org/install/)からインストールできます。あるいは、以下のコマンドで簡単にインストールできます。

# Macの場合
brew install gradle

# Windowsの場合(Scoopを利用)
scoop install gradle

Gradle Kotlin DSL(build.gradle.kts)の基本

Gradleのビルドスクリプトには、Kotlin DSL(build.gradle.kts)とGroovy DSL(build.gradle)の2種類があります。Kotlin DSLを使用すると、型安全なビルドスクリプトを記述できます。

プロジェクトのセットアップ

Gradleプロジェクトを作成するには、以下のコマンドを実行します。

gradle init --type kotlin-application

作成された build.gradle.kts を編集して、Kotlinプロジェクトの依存関係を追加できます。

plugins {
    kotlin("jvm") version "1.6.21"
}

dependencies {
    implementation("org.jetbrains.kotlin:kotlin-stdlib")
}

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

依存関係の管理

Gradleでは dependencies ブロックを使用して、外部ライブラリを追加できます。

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
    testImplementation("org.junit.jupiter:junit-jupiter:5.8.1")
}

タスクの定義

Gradleでは、タスクを定義して、プロジェクトのビルドプロセスをカスタマイズできます。

tasks.register("customTask") {
    doLast {
        println("This is a custom Gradle task.")
    }
}

タスクを実行するには、以下のコマンドを使用します。

gradle customTask

KotlinスクリプトとGradleの連携

KotlinスクリプトをGradleタスクとして実行

Gradleでは、Kotlinスクリプトをカスタムタスクとして実行できます。

tasks.register("runScript") {
    doLast {
        exec {
            commandLine("kotlin", "scripts/my_script.kts")
        }
    }
}

このタスクを実行すると、指定したKotlinスクリプトが実行されます。

gradle runScript

Gradleタスクの自動化

Gradleを使用すると、以下のような処理を自動化できます。

  • コードのフォーマット(ktlint
  • ビルドの最適化
  • 継続的インテグレーション(CI)との統合

例えば、ktlint を追加してコードフォーマットを自動化できます。

plugins {
    id("org.jlleitschuh.gradle.ktlint") version "10.3.0"
}
gradle ktlintCheck

まとめ

本記事では、KotlinスクリプトとGradleを活用したビルド自動化について解説しました。

  • Kotlinスクリプト(.kts)を使うと、簡単にスクリプトを作成・実行できる
  • Gradleを使用すると、Kotlinプロジェクトのビルドを効率的に管理できる
  • Kotlin DSL(build.gradle.kts)を活用することで、型安全なビルドスクリプトを記述できる
  • Gradleタスクを定義して、スクリプトやビルドプロセスを自動化できる

KotlinスクリプトとGradleを活用することで、開発の生産性を大幅に向上させることができます。ぜひプロジェクトに取り入れてみてください!