如何在Gradle中压缩单个文件?

时间:2018-01-10 13:00:54

标签: gradle build.gradle gzip

如何压缩Copy任务中的单个文件,而不必为手动创建和压缩临时文件而头疼?

例如,当您构建deb包时,应该使用gzip压缩一些文件:

task buildDeb(type: Deb, dependsOn: ['jar']) {

    // ...

    from (file('packaging/deb-package/manpage')) {

        into '/usr/share/man/man1'
        //rename(/.*/, deploymentName + '.1.gz')
        rename(/.*/, deploymentName + '.1')

        filteringCharset = 'UTF-8'
        filter(ReplaceTokens, tokens: [
            'TITLE': appTitle,
            // ...
        ])

        // XXX
        //compressItWithGzip();

    }

    // ...

}

内置ant工具仅支持通过Reader界面进行文本过滤。那么,如何做压缩(或者一般来说,任何二进制操作)?

1 个答案:

答案 0 :(得分:1)

您可以尝试:

ant.gzip(src: <source>, zipfile: <target>) 

在你的任务中,抓住docs

此外,可能不是在单个任务中放入太多逻辑,而是定义一组任务(一个负责此gzipping)并将它们与依赖关系联系起来。