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

问题描述

影子插件文档中有一个example for groovy,但我不知道如何将其翻译为Kotlin。

来自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中

解决方法

这仍然有些令人费解,但是以下build.gradle.kts配置允许发布与苗条罐同名且空pom的胖罐:

publishing {
    publications {

        create<MavenPublication>("publishMaven") {
            artifact(tasks["shadowJar"])
        }
    }
}
tasks {
    shadowJar {
       archiveClassifier.set("")
        minimize()
    }
}

我无法摆脱警告将多个坐标为“ XXX”的出版物发布到存储库“ YYY”。出版物将互相覆盖!但它可以工作。