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

如何将Gradle自定义Zip任务生成的jar.zip发布到Maven仓库

解决Gradle自定义Zip任务制品发布问题

当你直接将Zip任务传给artifact方法时,Gradle默认会把任务中from指定的源内容作为发布制品,而不是最终生成的zip归档文件。要发布生成的jar.zip,你需要明确指定引用Zip任务的输出文件。

解决方案

修改publishing块中的artifact配置,直接引用Zip任务的archiveFile属性(这是Gradle归档任务输出文件的标准属性):

publishing {
    publications {
        apkBuilding(MavenPublication){
            // 引用zipJars任务生成的最终zip文件
            artifact zipJars.archiveFile
        }
    }

    repositories {
        maven {
            name = 'Local'
            url = "file://${rootDir}/Repository"
        }
    }
}

完整配置示例

tasks.register('zipJars', Zip) {
    archiveFileName = "jar.zip"
    destinationDirectory = layout.buildDirectory.dir("${projectDir.parentFile}/DesktopAndroid/jars/zipped")
    from fatJarDev
}

publishing {
    publications {
        apkBuilding(MavenPublication){
            artifact zipJars.archiveFile
        }
    }

    repositories {
        maven {
            name = 'Local'
            url = "file://${rootDir}/Repository"
        }
    }
}

额外说明

  • archiveFile是Gradle归档任务(如Zip、Jar)的内置属性,指向任务生成的最终归档文件,引用它会自动让发布任务依赖该Zip任务,确保发布前先执行zipJars生成文件。
  • 如果需要对发布的制品添加分类器或扩展名等额外配置,可以用如下方式:
apkBuilding(MavenPublication){
    artifact(zipJars.archiveFile) {
        classifier = 'custom' // 可选,添加分类器后文件名会变成jar-custom.zip
        extension = 'zip'    // 可选,指定扩展名
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:35:20