gradle拷贝静态资源文件_Gradle-操作文件&文件拷贝

# 任务

了解 Project 中操作文件的相关 API;

代码演示-文件路径相关API;

代码演示-file(path)相关API;

代码演示-fileTree(path,closure)相关API;

练习-文件拷贝;

# 操作文件相关 API

下面列举一下 Project 中关于操作文件相关的 API 。

方法名

作用

project.getBuildDir();

获取module的build文件夹所在路径的File对象

File getRootDir();

获取根module所在路径的的File对象

File getBuildFile();

获取当前module对应的build.gradle文件对象

File file(Object path);

根据指定的path路径获取对应的文件对象

ConfigurableFileCollection files(Object... paths);

获取包含文件的ConfigurableFileCollection对象

ConfigurableFileTree fileTree(Object baseDir, Closure configureClosure);

将指定路径下所有的文件封装成一个文件数

...

...

# 代码演示

文件路径相关API

下面的代码块,打印了相关的 api 的调用 和输出对应输出的值。

println project.rootDir// /Users/zeal/dev/as_code/GradleDemo

println project.getBuildFile()// /Users/zeal/dev/as_code/GradleDemo/build.gradle

println project.getBuildDir()// /Users/zeal/dev/as_code/GradleDemo/build

通过 file(path) 得到 build.gradle 的内容

println file("app/build.gradle").getText()

调用重载的 file(...) 可以操作多个文件

ConfigurableFileCollection configurableFileCollection = files("settings.gradle", "app/build.gradle")

//遍历每一个文件

configurableFileCollection.files.each {

File file ->

println file.text

}

上面的实现方式也可以使用 fileTree(path,closure)将指定路径下所有的文件封装成一个文件数对象

fileTree("app/build/outputs/apk") { ConfigurableFileTree configurableFileTree ->

//遍历

configurableFileTree.visit { FileVisitDetails fileVisitDetails ->

//在这里操作文件...

println "the file's name is ${fileVisitDetails.name}"

}

}

# 练习-文件拷贝

方法名

作用

WorkResult copy(Closure closure);

拷贝

在实际开发过程中,如果我们想要在APK打包完毕之后将APK文件拷贝到文件系统某一个位置中,就可以使用到这个copy方法来实现。

copy() {

//闭包参数

CopySpec copySpec ->

//from 是一个方法,指定拷贝的源文件/文件夹>file("app/build/output/apk") 是方法的参数

from file("app/build/outputs/apk")

//into 是一个方法:指定拷贝的目的地>拷贝到根工程的output目录下

into "${rootDir}/output"

//重命名拷贝的文件名字

rename {

String srcFileName ->

"${srcFileName}-haha.apk"

}

//移除不需要拷贝的内容 不拷贝 .json 结尾的文件

exclude '**/*.json'

}

记录于 2018-07-27 下午

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值