GradleTest 是父專案,SubGradle1 是子專案, Project 裡的方法有很多都是寫在父或子專案效果會不同的
※父專案
task getAbsoluteOfRoot { println getRootDir().absolutePath // D:\GradleTest println getProjectDir().absolutePath // D:\GradleTest println getBuildDir().absolutePath // D:\GradleTest\build } getFileContent('xxx.txt') def getFileContent(String filePath) { // println file(filePath).text files(filePath).each { println it.text } }
※
※子專案
task getAbsoluteOfSub { println getRootDir().absolutePath // D:\GradleTest println getProjectDir().absolutePath // D:\GradleTest\SubGradle1 println getBuildDir().absolutePath // D:\GradleTest\SubGradle1\build }
※
※複製檔案
task copyTaskDir(type: Copy) { from 'D:/testCopy' into 'D:/result/xxx' exclude { it.file.name.endsWith('apk') } delete 'D:/result/xxx/abc.txt' } copy { from file('xxx.txt') // println getSubprojects().getAt(0).getBuildDir() into getSubprojects().getAt(0).getBuildDir() rename { 'ooo.txt' } }
※以上兩種方式都可以,但要注意 delete 會先執行,再做複製的動作
※複製目錄
copy { from files('testCopy/') println getSubprojects().getAt(0).getBuildDir() into getSubprojects().getAt(0).getBuildDir() exclude { it.file.name.endsWith('apk') } } task copyFile (type: Copy) { from files('testCopy/') into getSubprojects().getAt(0).getBuildDir() exclude { it.file.name.endsWith('apk') } }
※
※fileTree
// fileTree('') // fileTree.visit {} fileTree('D:/testCopy') { it.visit { print it.directory ? "目錄" : "|--檔案" println "為:$it.name" // copy {} } }
※註解的兩行就等於它下面的寫法,所以不用寫的這麼麻煩
沒有留言:
張貼留言