如何使用 gradle maven-publish 插件和 Kotlin DSL 发布带有空 pom 的 shadow jar?

How to publish a shadow jar with an empty pom using gradle maven-publish plugin and Kotlin DSL?

shadow 插件文档有一个 example for groovy 但我不明白如何将其翻译成 Kotlin。

Groovy 来自 https://imperceptiblethoughts.com/shadow/publishing 的示例:

publishing {
  publications {
    shadow(MavenPublication) { publication ->
      project.shadow.component(publication)
    }
  }
}

我对 Kotlin 版本的最佳尝试:

publishing {
  publications {
    create<MavenPublication>("pluginMaven") {
      artifact(tasks["shadowJar"])
      project.shadow.component(this)
    }
  }
}

对于上述 Kotlin 版本,隐藏的依赖项 在生成的 pom 中显示为运行时依赖项,这违背了隐藏的目的。

解决方法是

tasks {
    shadowJar {
       archiveClassifier.set("")
        minimize()
    }
}

this github issue.

中的一些背景