Comments 6
Интересная статья
ВbuildSrc
также поддерживается создание convention plugin'ов в привычном формате *.gradle.kts без необходимости наследования от Plugin
и прочего синтаксического мусора.
// gradle/libs.versions.toml
[versions]
jdk = "21"
kotlin = "1.9.23"
[libraries]
kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
// buildSrc/settings.gradle.kts
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
}
}
// buildSrc/build.gradle.kts
plugins {
`kotlin-dsl`
}
dependencies {
// Workaround: https://github.com/gradle/gradle/issues/15383
implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location))
implementation(libs.kotlin.gradle.plugin)
}
// buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
// Workaround: https://github.com/gradle/gradle/issues/15383
val libs = the<org.gradle.accessors.dm.LibrariesForLibs>()
plugins {
kotlin("jvm")
}
kotlin {
jvmToolchain {
languageVersion = JavaLanguageVersion.of(libs.versions.jdk.get())
}
}
dependencies {
testImplementation(kotlin("test"))
}
tasks.test {
useJUnitPlatform()
}
// kotlin-module/build.gradle.kts
plugins {
id("kotlin-conventions")
}
P.S. Кстати зачем оставлять этот код?
// Top-level build.gradle.kts
plugins {
alias(libs.plugins.android.application) apply false
}
apply false
имел смысл вместе с заданием версии плагина (для эмуляции поведения как у pluginManagement в Maven), а при использовании version catalog необходимость в нем отпадает.
Здравствуйте, вы бы хоть ссылку на мою статью оставили, раз уж решили её дополнить историей как добавлялись зависимости раньше)
Даже скриншоты мои приложили)
Вторая часть - прямой копи-пэйст https://medium.com/@yudistirosaputro/gradle-convention-plugins-a-powerful-tool-for-reusing-build-configuration-ba2b250d9063 без указания источника, да и ещё в ужасном машинном переводе..
Чего стоит только
Have you ever found yourself lost in the complexity of a modular project, struggling to maintain consistency and organization across your codebase?
превращающееся в
Вы когда-нибудь оказывались потерянными в сложности модульного проекта, стараясь поддерживать последовательность и организацию по всей вашей кодовой базе?
Современный способ организации зависимостей в Android. Version catalog и Gradle convention plugin