gradle拷贝静态资源文件_Gradle-操作文件文件拷贝
# 任務(wù)
了解 Project 中操作文件的相關(guān) API;
代碼演示-文件路徑相關(guān)API;
代碼演示-file(path)相關(guān)API;
代碼演示-fileTree(path,closure)相關(guān)API;
練習(xí)-文件拷貝;
# 操作文件相關(guān) API
下面列舉一下 Project 中關(guān)于操作文件相關(guān)的 API 。
方法名
作用
project.getBuildDir();
獲取module的build文件夾所在路徑的File對(duì)象
File getRootDir();
獲取根module所在路徑的的File對(duì)象
File getBuildFile();
獲取當(dāng)前module對(duì)應(yīng)的build.gradle文件對(duì)象
File file(Object path);
根據(jù)指定的path路徑獲取對(duì)應(yīng)的文件對(duì)象
ConfigurableFileCollection files(Object… paths);
獲取包含文件的ConfigurableFileCollection對(duì)象
ConfigurableFileTree fileTree(Object baseDir, Closure configureClosure);
將指定路徑下所有的文件封裝成一個(gè)文件數(shù)
…
…
# 代碼演示
文件路徑相關(guān)API
下面的代碼塊,打印了相關(guān)的 api 的調(diào)用 和輸出對(duì)應(yīng)輸出的值。
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 的內(nèi)容
println file("app/build.gradle").getText()
調(diào)用重載的 file(…) 可以操作多個(gè)文件
ConfigurableFileCollection configurableFileCollection = files("settings.gradle", "app/build.gradle")
//遍歷每一個(gè)文件
configurableFileCollection.files.each {
File file ->
println file.text
}
上面的實(shí)現(xiàn)方式也可以使用 fileTree(path,closure)將指定路徑下所有的文件封裝成一個(gè)文件數(shù)對(duì)象
fileTree("app/build/outputs/apk") { ConfigurableFileTree configurableFileTree ->
//遍歷
configurableFileTree.visit { FileVisitDetails fileVisitDetails ->
//在這里操作文件...
println "the file's name is ${fileVisitDetails.name}"
}
}
# 練習(xí)-文件拷貝
方法名
作用
WorkResult copy(Closure closure);
拷貝
在實(shí)際開發(fā)過程中,如果我們想要在APK打包完畢之后將APK文件拷貝到文件系統(tǒng)某一個(gè)位置中,就可以使用到這個(gè)copy方法來實(shí)現(xiàn)。
copy() {
//閉包參數(shù)
CopySpec copySpec ->
//from 是一個(gè)方法,指定拷貝的源文件/文件夾>file("app/build/output/apk") 是方法的參數(shù)
from file("app/build/outputs/apk")
//into 是一個(gè)方法:指定拷貝的目的地>拷貝到根工程的output目錄下
into "${rootDir}/output"
//重命名拷貝的文件名字
rename {
String srcFileName ->
"${srcFileName}-haha.apk"
}
//移除不需要拷貝的內(nèi)容 不拷貝 .json 結(jié)尾的文件
exclude '**/*.json'
}
記錄于 2018-07-27 下午
總結(jié)
以上是生活随笔為你收集整理的gradle拷贝静态资源文件_Gradle-操作文件文件拷贝的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高通骁龙8 Gen2劲敌!联发科天玑92
- 下一篇: 电子祭祀?国内一公司将推出“太空殡葬”