gradle - 如何创建没有根目录的 'tar.gz'包?

标签 gradle build.gradle

我需要创建没有根目录的tar.gz包。 现在我有树:enter image description here

结果示例:enter image description here

我使用了 gradle 任务,它使用 cfg 目录创建了 tar.gz 包:

plugins.withType(DistributionPlugin) {
    distTar() {
        into('cfg') { from 'cfg' }
            compression = Compression.GZIP
            extension = 'tar.gz'
    }
}

最佳答案

如果需要从生成的存档中删除根级目录,可以使用 Tar.eachFile用于更改/改变目标文件路径的API,如下:

distTar {
    // Alter file path to remove root level directory
    eachFile { file ->
        String path = file.relativePath
        file.setPath(path.substring(path.indexOf("/")+1, path.length()))
    }
}

(我没有从 Tar 任务 API 中找到任何方法或属性来以更好的方式实现此目的)

关于gradle - 如何创建没有根目录的 'tar.gz'包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54286643/

相关文章:

gradle - 如何使用Gradle应用程序/分发插件创建具有不同依赖关系的分发?

spring - 无法在spring boot中启动嵌入式Tomcat

gradle - Artifactory Gradle 插件的解析闭包中是否可以有多个存储库?

android - 此构建中使用了已弃用的 Gradle 功能,使其与 Gradle 6 不兼容

android - 任务 ':app:processReleaseGoogleServices' 执行失败。 > 找不到与包名称匹配的客户端

tomcat - gradle 问题 "main"groovy.lang.MissingPropertyException : No such property: baseDir for class: org. apache.catalina.core.StandardEngine

java - 找不到资源:/META-INF/BenchmarkList in Gradle project on Eclipse

unit-testing - Kotest 打破 gradle 的 :test task with java. lang.IllegalArgumentException: Received a failure event for test with unknown id

gradle - 任务参数

spring-boot - Spring Boot 2 - 更改 Jar 名称