バージョンカタログの導入 IntelliJ IDEA
私はマルチプロジェクトをやりたかっただけなのですが、
そのやり方を検索していると決まってバージョンカタログの話が出るので、
どうせplugin内のバージョン指定で変数が使えず不便だったので、
ついでにやっちゃえって思ったらハマったので、
どうやって実現したかを書いておきます。
まずはバージョンカタログを使えるようにします。 と言うか、正確にはデフォルトで使えるようにはなっているのですが、 settings.gradle.ktsをいじらないと名前解決のエラーでbuild.gradle.ktsの構文解析ができなくなるので、 その対策をします。
settings.gradle.kts
pluginManagement {
repositories {
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
}
}
}
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}
rootProject.name = "HelloWorld"
create("libs") {}の1行のために、3日も費やしてしまいました.˚‧º·(°இωஇ°)‧º·˚.
次にバージョンカタログファイルを作ります(サンプル)。
gradle/libs.versions.toml
[versions] kotlin = "2.0.0" ktor = "2.3.12" [libraries] ktor-client = { module = "io.ktor:ktor-client", version.ref = "ktor" } [plugins] kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
この例だと、 kotlinJvmと言うエイリアスでkotlin.jvmのバージョンを2.0.0に指定しますと言う意味になります。
そして最後に、build.gradle.ktsでエイリアスを使った指定を行いますが、 バージョンカタログの内容を反映させるために、 一旦プロジェクトを読み込み直してから編集してください。
build.gradle.kts
plugins {
// kotlin("jvm") version "2.0.0"
alias(libs.plugins.kotlinJvm)
}
group = "com.exsample"
version = "1.0-SNAPSHOT"
dependencies {
implementation(libs.ktor.client)
}
バージョンカタログでエイリアス名にハイフンを使った時は、gradle内で使う時はドットに変換して指定してください。
この例では、ktor-clientで定義したものをlibs.ktor.clientで指定しています。
IntelliJ IDEA 2024.1.4 Community Edition、Gradle 8.5で確認しました。