gradle-zip打包
环境信息:
jdk 1.8
gradle 6.9.1
测试目录
├── doc
│ ├── result
│ └── src
│ ├── a.html
│ ├── a.txt
│ ├── b
│ │ ├── b.html
│ │ ├── b.txt
│ │ └── bb
│ │ ├── bb.html
│ │ └── bb.txt
│ └── c
│ ├── c.html
│ └── c.txt
1. 打包文件夹
打包时包含子文件夹及其文件
task zip1(type: Zip) {
//压缩包名称
archiveName "res.zip"
//压缩包输出到的位置
destinationDir file('doc/result')
//要压缩的文件夹
from('doc/src')
}
打包效果:
.
├── res
│ ├── a.html
│ ├── a.txt
│ ├── b
│ │ ├── b.html
│ │ ├── b.txt
│ │ └── bb
│ │ ├── bb.html
│ │ └── bb.txt
│ └── c
│ ├── c.html
│ └── c.txt
└── res.zip
2.只打包某些文件
task zip2(type: Zip) {
//压缩包名称
archiveName "res.zip"
//压缩包输出到的位置
destinationDir file('doc/result')
//要压缩的文件夹
from('doc/src'){
//包含当前目录下的txt
include("*.txt")
//包含子目录下的txt
include("*/*.txt")
//包含所有html文件,包含所有层级的子目录下的html
include("**/*.html")
}
}
打包效果:
├── res
│ ├── a.html
│ ├── a.txt
│ ├── b
│ │ ├── b.html
│ │ ├── b.txt
│ │ └── bb
│ │ └── bb.html
│ └── c
│ ├── c.html
│ └── c.txt
└── res.zip
3. 打包时排除某个文件
task zip3(type: Zip) {
//压缩包名称
archiveName "res.zip"
//压缩包输出到的位置
destinationDir file('doc/result')
//要压缩的文件夹
from('doc/src'){
//排除当前目录下的html
exclude("*.html")
//排除所有txt
exclude("**/*.txt")
}
}
打包效果:
.
|-- res
| |-- b
| | |-- b.html
| | `-- bb
| | `-- bb.html
| `-- c
| `-- c.html
`-- res.zip
4. 解压zip
将res.zip解压到unpack目录
task unpackFiles(type: Copy) {
doLast {
from zipTree("doc/result/res.zip")
into "doc/unpack"
}
}