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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

gradle ant_区分基于Ant目标的Gradle任务

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gradle ant_区分基于Ant目标的Gradle任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

gradle ant

在我的博客文章《 從Ant Build演變Gradle構建:導入Ant構建文件》中 ,我演示了如何使用Gradle內置的基于AntBuilder的Ant支持在Gradle構建中導入Ant目標。 然后,可以將這些Ant目標作為Gradle任務進行訪問,并與Gradle構建直接引入的任務相同。 在本文中,我將研究如何使用Groovy區分基于導入的Ant目標的Gradle任務和Gradle定義的任務。

由Gradle進口Ant構建文件建立在我的例子中的這個帖子在我的介紹以前的帖子 。 該Ant構建文件包括目標“ -init”,“ clean”,“ compile”,“ jar”,“ javadoc”,“ all”和“ output”。 緊隨build.xml及其Ant目標的Gradle構建腳本文件。

build-ant-targets-and-gradle-tasks.gradle(版本1)

// build-ant-targets-and-gradle-tasks.gradle // // Gradle build script demonstrating Gradle Tasks associated with this project // that are not provided by an imported Ant build file.// ant is a DefaultAntBuilder instance ant.importBuild 'build.xml'def antTargetsNames = ant.references.get("ant.targets").collect{ it.name } println "\nAnt Targets: ${antTargetsNames}\n"def taskNames = rootProject.tasks.collect{ it.name } println "\nGradle Task Names: ${taskNames}\n"def tasksThatAreNotAntTargets = taskNames - antTargetsNames println "\nGradle Tasks that are NOT Ant Targets: ${tasksThatAreNotAntTargets}\n"

隱式可用的“ ant”變量( 默認為AntBuilder )首先用于通過調用ant.references.get("ant.targets")獲得所有Ant提供的目標。 Groovy方便的Collection.collect(Closure)方法在該集合上調用,以返回Ant目標“名稱”的集合。

隱式可用的“ rootProject”也可以用于使用rootProject.tasks在根項目級別獲取任務。 在此集合上使用了相同的Groovy Collection.collect(Closure)方法來獲取Gradle任務的名稱。 最后,Groovy的減法運算符用于輕松確定哪些Gradle Tasks不是Ant Targets。 如上所示運行時,所有Gradle任務都是Ant目標,因此減法運算符不返回任何內容。 這顯示在下一個屏幕快照中。

為了使示例更有趣,我在上面顯示的G??radle構建文件中添加了幾個Gradle引入的Tasks。 接下來顯示具有兩個新的Gradle引入的任務的新版本。

build-ant-targets-and-gradle-tasks.gradle(版本2)

// build-ant-targets-and-gradle-tasks.gradle // // Gradle build script demonstrating Gradle Tasks associated with this project // that are not provided by an imported Ant build file.// ant is a DefaultAntBuilder instance ant.importBuild 'build.xml'task(helloWorld) << {println "Hello, World!" }task(currentDateTime) << {println new Date() }def antTargetsNames = ant.references.get("ant.targets").collect{ it.name } println "\nAnt Targets: ${antTargetsNames}\n"def taskNames = rootProject.tasks.collect{ it.name } println "\nGradle Task Names: ${taskNames}\n"def tasksThatAreNotAntTargets = taskNames - antTargetsNames println "\nGradle Tasks that are NOT Ant Targets: ${tasksThatAreNotAntTargets}\n"

Gradle構建腳本的修訂版引入了兩個自己的任務(“ helloWorld”和“ currentDateTime”)。 運行此腳本的輸出包括這兩個新的Gradle任務,這些不是Grails任務,而是Ant引入的基于目標的Gradle任務。 接下來顯示此輸出。

這篇文章中的示例提供了其他示例,這些示例能夠使用Groovy代碼更好地理解Gradle構建的優勢。 可以直接訪問默認的Ant Builder實例(“ ant”)和“ rootProject”以獲取所有基于Ant的Gradle任務以及所有任務(基于Ant或Gradle引入)的名稱。

參考:在Inspired by Actual Events博客上,與我們的JCG合作伙伴 Dustin Marx 區別了基于Ant目標的Gradle任務 。

翻譯自: https://www.javacodegeeks.com/2014/01/differentiating-ant-target-based-gradle-tasks.html

gradle ant

總結

以上是生活随笔為你收集整理的gradle ant_区分基于Ant目标的Gradle任务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。