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

如何使用Gradle发布不同Group的多份构件?

解决方案

你没法在同一个MavenPublication里推送不同groupId的构件——每个发布配置对应唯一的Maven坐标(groupId/artifactId/version),而Nexus里的路径正是由groupId决定的。要实现需求,你需要创建两个独立的发布配置,分别对应tar包和jar包的坐标。

修改后的完整build.gradle代码如下:

plugins 
{
    id 'maven-publish'
}

group = "com.sample.location.abc"
version = "1.1"
def artifact_tar = 'myTarBall'
def artifact_jar = 'myJarFile'

publishing {
    publications {
        // 配置tar包发布,对应com.sample.location.abc路径
        tarPublication(MavenPublication) {
            groupId = "${project.group}"
            artifactId = "${artifact_tar}"
            version = "${version}"
            artifact source: "${artifact_tar}-${version}.tar.gz", extension: "tar.gz"
        }

        // 配置jar包发布,对应com.sample.location.xyz路径
        jarPublication(MavenPublication) {
            groupId = "com.sample.location.xyz"
            artifactId = "${artifact_jar}"
            version = "${version}"
            artifact source: "${artifact_jar}-${version}.jar", extension: "jar"
        }
    }

    // 配置Nexus仓库信息(如果之前未添加)
    repositories {
        maven {
            url = "你的Nexus仓库地址,例如http://your-nexus-host/repository/maven-releases/"
            credentials {
                username = "Nexus用户名"
                password = "Nexus密码"
            }
        }
    }
}

使用说明

  • 执行./gradlew publish会同时推送两个构件到Nexus对应路径
  • 也可以单独推送某一个构件:
    • 推送tar包:./gradlew publishTarPublicationToMavenRepository
    • 推送jar包:./gradlew publishJarPublicationToMavenRepository

内容的提问来源于stack exchange,提问作者John Viernes IV

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:00:03