gradle 使用 kotlin DSL 在 jar 工件名称中包含 scala 版本

gradle include scala version in jar artifact name using kotlin DSL

如何使用 gradle build 任务重命名 gradle scala 插件生成的 jar 以包含 scala 版本名称?我相信这个 属性 叫做:archivesBaseName。它可以从 java 插件 (https://docs.gradle.org/current/dsl/org.gradle.api.Project.html#org.gradle.api.Project:archivesBaseName) 获得。

注意:我想使用 kotlin DSL 完成此任务。

对于影子罐子:

id("com.github.johnrengelman.shadow") version "5.2.0" apply false
val shadowJar: com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar by tasks
    shadowJar.apply {
        archiveBaseName.set("${project.name}_2.12-all")
    }
    tasks {
        build {
            dependsOn(shadowJar)
        }

已经可以正常工作了,但我也想更改常规输出。

即:

archivesBaseName = "asdf"//"${project.name}_${sparkVersion}_${scalaVersionShort}"

通常有效。但我还没有想出如何让它在 Kotlin DSL 中工作

base.archivesBaseName = "gradle"

https://chromium.googlesource.com/external/github.com/gradle/gradle/+/cf6d0508131b0ff9d6354b3d46f83bcf5ca8f8a4/build.gradle.kts#45

完成任务