Как стать автором
Обновить

Комментарии 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 необходимость в нем отпадает.

Потому что в nio так сделано))) но вроде бы - это не точно, я не очень большой в градл специалист - там есть два способа задания в toml файле для плагинов. И в одном из них это требуется.

Здравствуйте, вы бы хоть ссылку на мою статью оставили, раз уж решили её дополнить историей как добавлялись зависимости раньше)

Даже скриншоты мои приложили)

Добавил ссылку на статью в описании картинки

Вторая часть - прямой копи-пэйст 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?

превращающееся в

Вы когда-нибудь оказывались потерянными в сложности модульного проекта, стараясь поддерживать последовательность и организацию по всей вашей кодовой базе?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории