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 {}
}
}
※註解的兩行就等於它下面的寫法,所以不用寫的這麼麻煩
沒有留言:
張貼留言