首页 > 解决方案 > 如何使用 Gradle Kotlin DSL 为所有 jar 添加前缀

问题描述

我有一个组 ID 为的根 Gradle 项目和多个名为, ,org.name的子项目。org.name.oneorg.name.twoorg.name.three

目前 .jars 生成为one-1.0.jar, two-1.0.jarthree-1.0.jar但是我希望它们命名为name-one-1.0.jar, name-two-1.0.jar, name-three-1.0.jar

如何使用 Kotlin DSL(build.gradle.kts 文件)实现它?

标签: kotlingradlebuildgradle-kotlin-dsl

解决方案


我假设您使用shadow插件来打包一个胖罐子。

如果您使用 gradle shadow 插件,您可以执行以下操作来控制 jar 名称:

tasks {
  withType<ShadowJar> {
    archiveBaseName.set("foo-${project.name}")
  }
}

如果您有子项目,您可以申请所有项目/子项目:

allprojects {
  tasks {
    withType<ShadowJar> {
      archiveBaseName.set("foo-${project.name}")
    }
  }
}

推荐阅读