🫖

手動で Kotlin Multiplatform を利用した Kotlin の multi project を作成した

2024/05/06に公開

概要

本記事では、Kotlin で multi project を作成する際に、Kotlin Multiplatform(KMP)を利用した構成で作成しました。
うまく、Intellij IDEA を利用して作成できなかったため、備忘録としてまとめます。

作成したリポジトリは以下です。

https://github.com/Msksgm/sample-of-kotlin-multi-project-by-hand

手順

以下の手順で実装できました。

  • プロジェクトの新規作成
  • version catalog で Kotlin Multiplatform を導入
  • settings.gradle.kts に multi project の対象ディレクトリを記述
  • multi project にするディレクトリを作成して、build.gradle.kts を作成
  • gradle のビルド

プロジェクトの新規作成

プロジェクトを新規作成してください。
multip project にする際には、src/ ディレクトリは不要ですので、削除してください。

version catalog で Kotlin Multiplatform を導入

version catalog で、Kotlin Multiplatform を定義しました。

gradle/libs.versions.toml に以下を記述してください。

gradle/libs.versions.toml
[versions]
kotlin = "1.9.22"

[plugins]
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }

その後、build.gradle.kts を下記のように更新します。

build.gradle.kts
// plugins で Kotlin と Kotlin Multiplatform を指定
plugins {
    alias(libs.plugins.kotlin.jvm)
    alias(libs.plugins.kotlin.multiplatform) apply false
}

settings.gradle.kts に multi project の対象ディレクトリを記述

settings.gradle.kts に multi project 対象のディレクトリを記述します。
本記事では、multi-project/project-a と multi-project/project-b で multi project にするため、以下のように記述します。

settings.gradle.kts
// 以下を追記
include("project-a")
project(":project-a").projectDir = file("multi-project/project-a")

include("project-b")
project(":project-b").projectDir = file("multi-project/project-b")

multi project にするディレクトリを作成して、build.gradle.kts を作成

settings.gradle.kts で指定したディレクトリを作成し、build.gradle.kts を作成します。
以下のように作成します。本記事では、内容は同じです。

multi-project/project-a/build.gradle.kts
@file:Suppress("DSL_SCOPE_VIOLATION")

plugins {
  id(libs.plugins.kotlin.multiplatform.get().pluginId)
}

kotlin {
  jvm()
}

multi-project/project-b/build.gradle.kts
@file:Suppress("DSL_SCOPE_VIOLATION")

plugins {
  id(libs.plugins.kotlin.multiplatform.get().pluginId)
}

kotlin {
  jvm()
}

gradle の build

すべての準備を終えたら、gradle を build します。
ビルドが通過したら、Intellij IDEA が以下のようにディレクトリのマークから、package のマークになります。

kotlin-multi-project-package

この状態で、新規ディレクトリの作成(Cmd + N)すると、下記の画像のように補完されます。
あとは通常のプロジェクトのように、ファイルを作成してください。

new-package-of-kotlin-multi-project-package

Discussion