gradle distZip 重命名存档

标签 gradle build.gradle

我想对由 distZip 任务创建的可分发 zip 存档使用特定名称。我使用了下面的代码

distZip {
        archiveName baseName+'-'+version+'-bin.zip'
}

生成的存档中包含 'baseName+'-'+version+'-bin' 文件夹。

jar -tvf baseName-version-bin.zip
0 月 24 日星期一 15:48:02 CST 2014 baseName-version-bin/
81462 Mon Feb 24 15:48:02 CST 2014 baseName-version-bin/baseName-version.jar
0 月 24 日星期一 15:48:02 CST 2014 baseName-version-bin/lib/
6329376 Fri Feb 07 09:37:28 CST 2014 baseName-version-bin/lib/a.jar
6329376 Fri Feb 07 09:37:28 CST 2014 baseName-version-bin/lib/b.jar

所有的 jar 都放在这个目录中。我只想重命名存档而不打扰其中的内容。我期待 'baseName-version' 目录在 zip 中没有 '-bin' 后缀。

如何单独更改存档名称?

最佳答案

你可以这样做:

distZip {
    archiveName "$baseName-$version-bin.zip"
}

distributions {
    main {
        contents {
            eachFile {
                it.path = it.path.replace('-bin', '')
            }
        }
    }
}

另一件事是,添加像 -bin 这样的后缀更好的方法(并与 maven 兼容)将使用分类器属性。我正在使用 java-library-distribution 插件,但我相信使用分发插件它应该工作相同(考虑到您也在使用 maven 插件)。那么你这样做就足够了:
distZip {
    classifier = 'bin'
}

distributions {
    main {
        baseName = archivesBaseName
        contents {
            eachFile {
                it.path = it.path.replace("-$distZip.classifier", '')
            }
        }
    }
}

关于gradle distZip 重命名存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21999870/

相关文章:

gradle - 在 Android gradle 构建脚本中定义我自己的自定义 Maven 存储库

android - 在构建 android studio 项目时运行 lint

android - 如何解决Unity "Gradle build failed"?

android - 在 com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated 上找不到属性 'packageApplication'

android - Gradle 错误 : configuration declares dependency which is not declared

Android Studio 项目中的 Gradle 弃用 "Relying on packaging to define the extension of the main artifact..."可以修复吗?

java - 为微服务设置 Artifactory

android - android.enableBuildCache=true 在新的 Android Studio 2.2 中如何运行?

android - 使用 Gradle 运行命令行并保存输出结果

java - Gradle:maven 仓库上的条件库发布包