gradle拷贝静态资源文件_Gradle教程系列 —— 文件操作

几乎每个构建都涉及到文件的操作。因此,为了方便文件操作,Gradle专门设计了操作文件的API。

这些API包含两部分:

指定要处理的文件和目录

指定要如何处理文件和目录

拷贝文件(Copy)

将特定文件拷贝到指定目录。

task copyCache(type:Copy){

from file("${buildDir}/cache/hello.txt")

into file("${buildDir}/log")

}

Project.file()方法是用于创建当前项目下的一个文件或者目录。

我们也可以不使用file()方法,直接使用路径。

task copyCache2(type:Copy){

from "${buildDir}/cache/hello.txt"

into "${buildDir}/log2"

}

当然,我们也可以同时拷贝多个文件到指定目录。

task copyFiles(type:Copy){

from "${buildDir}/cache/hello.txt", "${buildDir}/generated/1.txt"

into "${buildDir}/log3"

}

现在考虑另外一种情况,我们需要拷贝指定目录下的pdf格式的文件。

task copyPdfReportsForArchiving(type: Copy) {

from "${buildDir}/reports"

include "*.pdf"

into "${buildDir}/toArchive"

}

copy-with-flat-filter-example.png

我们也可以拷贝reports目录以及它的子目录下的pdf文件。

task copyAllPdfReportsForArchiving(type: Copy) {

from "${buildDir}/reports"

include "**/*.pdf"

into "${buildDir}/toArchive"

}

copy-with-deep-filter-example.png

创建归档文件(zip,tar等)

Gradle 提供了Zip,Tar,Jar等任务,可以将文件打包成.zip,.tar或者.jar格式的文件。

例如,我们可以将${buildDir}/toArchive目录下的文件,打包成${buildDir}/dist目录的my-distribution.zip文件

task packageDistribution(type: Zip) {

archiveName = "my-distribution.zip"

destinationDir = file("${buildDir}/dist")

from "${buildDir}/toArchive"

}

打开档案文件

Project.zipTree和Project.tarTree方法可以从相应的归档文件生成FileTree。FileTree可以用在from方法中。如下所示。

task unpackFiles(type: Copy) {

from zipTree("${buildDir}/dist/my-distribution.zip")

into "${buildDir}/resources"

}

创建目录

我们可以使用Project.mkdir方法创建目录。

task ensureDirectory {

doLast {

mkdir "images"

}

}

移动文件或目录

Gradle并没有提供移动文件或者目录的方法。不过我们可以使用ant的方法。

task moveReports {

doLast {

ant.move file: "${buildDir}/reports",

todir: "${buildDir}/toArchive"

}

}

删除文件和目录

在Gradle中,可以使用Delete任务或者Project.delete方法删除文件或者目录。

删除目录

task myClean(type: Delete) {

delete buildDir

}

如果想要控制删除哪些文件,我们可以使用FileCollection和FileTree。

删除源文件夹下的临时文件

task cleanTempFiles(type: Delete) {

delete fileTree("src").matching {

include "**/*.tmp"

}

}

总结

本文主要讲述了,Gradle中常用的一些文件操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值