You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gradle发布时如何显式定义构件名称?

解决方案

要修改发布到Maven仓库的构件文件名,同时保留groupId/artifactId/version的目录结构不变,你可以通过以下两种方式实现:

方法1:仅修改发布到仓库的构件名(本地构建文件名不变)

在maven-publish插件的发布配置中,显式指定构件的name属性,覆盖默认命名规则:

apply plugin: 'maven-publish'

publishing {
  publications {
    maven(MavenPublication) {
      group = "quick.fox"
      artifactId = "core"
      version = "1.1"

      // 引用jar任务并自定义构件文件名
      artifact jar {
        name = 'prefix-core'
      }
    }
  }
}

此配置会让Gradle在发布时将jar文件命名为prefix-core.jar,而本地构建生成的jar仍保持默认的core-1.1.jar。

方法2:同时修改本地构建和发布的构件名

如果希望本地构建生成的jar文件名也同步改为prefix-core.jar,直接修改jar任务的archiveName属性即可:

apply plugin: 'maven-publish'

// 修改本地jar构建的文件名
jar {
  archiveName = 'prefix-core.jar'
}

publishing {
  publications {
    maven(MavenPublication) {
      group = "quick.fox"
      artifactId = "core"
      version = "1.1"
      // 直接使用修改后的jar构件,无需额外配置
      from components.java
    }
  }
}

原理说明

Gradle的maven-publish插件默认会根据artifactId和version生成构件文件名(格式:${artifactId}-${version}.jar)。通过显式设置artifact的name属性,或者修改jar任务的archiveName,可以覆盖这个默认规则,实现自定义构件文件名的需求。

这两种方法在Gradle 6.5.1版本中都能正常工作,你可以根据实际需求选择其中一种。

内容的提问来源于stack exchange,提问作者orirab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:16:09