日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Gradle 任务访问文件的几种方式

發(fā)布時間:2023/12/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gradle 任务访问文件的几种方式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

例子:

三種方式,使用

task file{// relative pathFile configFile = file('build.gradle')println 'relative path: ' + configFile// Using an absolute pathconfigFile = file(configFile.absolutePath)println 'absolute path: ' + configFile.absolutePath + ' = ' + configFile// Using a File object with a relative pathconfigFile = file(new File('build.gradle')) println 'file object: ' + configFile }

輸出:

relative path: C:\temp\quickstart\groovy\build.gradle
absolute path: C:\temp\quickstart\groovy\build.gradle = C:\temp\quickstart\groovy\build.gradle
file object: C:\temp\quickstart\groovy\build.gradle

文件集合的創(chuàng)建方式和使用

FileCollection collection = files('build.gradle', new File('other.gradle'), ['settings.gradle', '.gradle/6.0/gc.properties']) println "collection: " + collectioncollection.each {File file ->println 'file name:' + file.name}

輸出:

這個元素為File的文件集合可以轉(zhuǎn)換成其他的Groovy數(shù)據(jù)結(jié)構(gòu):

// Convert the collection to various types Set set = collection.files Set set2 = collection as Set List list = collection as List String path = collection.asPath File file = collection.singleFile File file2 = collection as File // 也可以使用代碼往集合里添加或者刪除元素 def union = collection + files('src/file3.txt') def different = collection - files('src/file3.txt')

文件集合的自定義實現(xiàn)方式

task file {File srcDir// Create a file collection using a closureFileCollection collection = files { srcDir.listFiles() }srcDir = file('src')println "Contents of $srcDir.name"collection.collect { relativePath(it) }.sort().each { println it }srcDir = file('.gradle')println "Contents of $srcDir.name"collection.collect { relativePath(it) }.sort().each { println it } }

輸出:

Contents of src
src\main
src\test
Contents of .gradle
.gradle\6.0
.gradle\buildOutputCleanup

文件樹

文件樹是按層次結(jié)構(gòu)排序的文件集合。例如,文件樹可能表示一個目錄樹或 ZIP 文件的內(nèi)容。它通過 FileTree 接口表示。FileTree 接口繼承自 FileCollection,所以你可以用對待文件集合一樣的方式來對待文件樹。Gradle 中的幾個對象都實現(xiàn)了 FileTree 接口,例如 source sets。

測試:

task file {FileTree tree = fileTree(dir: 'src/main')tree.each {File file -> println file.name}FileTree tree2 = fileTree(dir: '.gradle')List list = tree2 as Listlist.each({println it}) }

輸出:

Person.java
resource.xml
C:\temp\quickstart\groovy.gradle\6.0\executionHistory\executionHistory.bin
C:\temp\quickstart\groovy.gradle\6.0\executionHistory\executionHistory.lock
C:\temp\quickstart\groovy.gradle\6.0\fileChanges\last-build.bin
C:\temp\quickstart\groovy.gradle\6.0\fileHashes\fileHashes.bin
C:\temp\quickstart\groovy.gradle\6.0\fileHashes\fileHashes.lock
C:\temp\quickstart\groovy.gradle\6.0\gc.properties
C:\temp\quickstart\groovy.gradle\buildOutputCleanup\buildOutputCleanup.lock
C:\temp\quickstart\groovy.gradle\buildOutputCleanup\cache.properties
C:\temp\quickstart\groovy.gradle\buildOutputCleanup\outputFiles.bin

要獲取更多Jerry的原創(chuàng)文章,請關注公眾號"汪子熙":

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的Gradle 任务访问文件的几种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。