如何创建没有根目录的“ tar.gz”软件包?

时间:2019-01-21 09:15:55

标签: 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'
    }
}

1 个答案:

答案 0 :(得分:0)

如果您需要从生成的档案中删除根目录,则可以使用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中找到任何方法或属性来更好地实现此目的)