You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Gradle Distribution构建中将test.zip解压至发布包内?

如何在Gradle Distribution插件中解压zip文件到发布包内?

嘿,这个问题很常见,我来给你捋清楚怎么改!你当前的配置是直接把test.zip作为文件打包进发布包了,要实现解压后放入的效果,只需要用Gradle提供的zipTree()方法替换原来的路径引用就行。

修改后的完整配置

apply plugin: 'distribution'
distributions {
    main {
        contents {
            // 关键改动:用zipTree()解析test.zip,自动解压内容到发布包
            from zipTree('src/resources/test.zip')
            
            // 如果你想把解压后的内容放到指定子目录,比如"unzipped-test",可以加into配置
            // from zipTree('src/resources/test.zip') into 'unzipped-test'
            
            // 其他需要打包的内容依然保留
            from('src/resources/other-contents')
        }
    }
}

原理说明

  • zipTree()是Gradle的核心API之一,它会把指定的zip文件解析成一个文件树(FileTree),相当于提前完成了解压操作。
  • 当你把这个文件树传给from时,Gradle会遍历树里的所有文件,将它们直接复制到发布包的对应位置,而不是把zip文件本身打包进去。

这样执行distZip或者distTar任务时,生成的发布包里就会是test.zip解压后的文件,而不是原zip文件了。

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

火山引擎 最新活动