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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

labview求n阶乘的和_求极限方法总结

函数的极限第一步&#xff1a;判断极限类型1、 型常用方法&#xff1a;①洛必达法则 ②等价无穷小代换 ③泰勒公式2、 型常用方法&#xff1a;①洛必达法则②分子分母同除以分子和分母各项中最高阶的无穷大③基本极限&#xff1a; 当nm时&#xff0c;极限等于 ,当n&#xff1c;…

uniapp怎么引入css_CSS 三种基础选择器

本节我们来学习 CSS 中的选择器&#xff0c;选择器是 CSS 里面一个很重要的概念&#xff0c;HTML 中的所有标签样式&#xff0c;都是通过不同的 CSS 选择器进行控制的。我们只需要通过选择器&#xff0c;就可以对不同的 HTML 标签进行选择&#xff0c;并指定各种样式声明。在 C…

万网绑定二级域名_Hexo+yilia主题网站绑定个性域名

上篇我们已经成功部署了自己的博客网站&#xff0c;初始化的网站看上去似乎少了些内容(高端大气上档次的设置)。接下来我们就进一步完善我们的博客网站(孟繁胜游)。绑定个性域名当你打开github给你设定的固定域名时&#xff0c;是不是感觉low极了。主要是github给你的域名在你注…

javafx 自定义控件_JavaFX自定义控件– Nest Thermostat第1部分

javafx 自定义控件几周前&#xff0c;由于Hendrik Ebbers的出色文章 &#xff0c;我决定花一些时间观看有关JavaFX的JavaOne讨论。 我不得不说我已经学到了很多东西&#xff0c;只是看这些视频&#xff08;即使我还没有完成&#xff09;&#xff01; Gerrit的“使用力&#xf…

不等号属于不等式吗_考研专业课备考时,仅仅多刷几遍目标院校的期末考试题就够吗?...

考研专业课备考时&#xff0c;仅仅多刷几遍目标院校的期末考试题就够吗&#xff1f;也许这要看各专业情况&#xff0c;部分专业的考研题和本科生的期末考试题难度类似&#xff0c;比如说人文社科类的专业&#xff0c;这也是我的猜测情况。大部分专业的专业课题目难度&#xff0…

使用Spring Boot和H2可以完全工作的原型

我们确实在弹簧上使用了很多h2&#xff0c;特别是对于单元测试。 但是&#xff0c;我们可能希望拥有一个功能齐全的原型来显示数据&#xff0c;而不是进行单元测试。 H2是最理想的选择&#xff0c;它在spring上运行良好&#xff0c;与大多数数据库都具有良好的语法兼容性&…

饿了吗商品列表_仅仅一字之差,饿了么起诉饿了吗

饿了么与“饿了吗”&#xff0c;仅仅一字之差&#xff0c;相信不少人乍看会以为是一家。但近日公开的一则判决书显示&#xff0c;因为太近似&#xff0c;二者曾对簿公堂。饿了吗公司以败诉收场&#xff0c;被判处立即变更其企业名称&#xff0c;变更后企业名称中不得含有与“饿…

pandas 遍历并修改_Pandas循环提速7万多倍!Python数据分析攻略

乾明 编译整理 量子位 报道 | 公众号 QbitAI用Python和Pandas进行数据分析&#xff0c;很快就会用到循环。但在这其中&#xff0c;就算是较小的DataFrame&#xff0c;使用标准循环也比较耗时。遇到较大的DataFrame时&#xff0c;需要的时间会更长&#xff0c;会让人更加头疼。现…

教程:用Java创建和验证JWT

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕&#xff1f; 尝试使用Okta API进行托管身份验证&#xff0c;授权和多因素身份验证。 Java对JWT&#xff08;JSON Web令牌&#xff09;的支持过去需要进行大量工作&#xf…

AWS re:Invent 2018的5大公告

AWS re&#xff1a;Invent刚刚完成。 这是一个巨大的活动&#xff0c;在拉斯维加斯7家最大的酒店中&#xff0c;有50,000多名与会者&#xff0c;并发布了许多新服务。 无服务器通过新的lambda增强功能和更好的容器支持而继续引起人们的广泛关注。 AWS通过新的“ Outposts”功能…

添加右键菜单_如何在Windows文件夹的右键菜单中添加“打开PowerShell”

原文&#xff1a;https://www.howtogeek.com/165268/how-to-add-open-powershell-here-to-the-context-menu-in-windows/如果您喜欢使用Windows PowerShell而不是命令提示符&#xff0c;那么您可能喜欢从右键单击Windows中的文件夹时得到的上下文菜单中直接访问它。以下是如何做…

多云系统的授权

这是我目前正在致力于消耗SPIFFE&#xff08; 安全生产身份框架 &#xff08;Every Production Identity Framework For Everyone &#xff09;在WSO2的Prabath Siriwardena先生的启发下&#xff0c;在Moratuwa大学的Gihan Dias教授的指导下&#xff0c;通过信任和身份验证在动…

级联选择组件_如何开发一个 Antd 级联多选控件

本文也同步发在掘金上, https:// juejin.cn/post/69149942 41940750343 Intro 这篇文章将从零开始介绍如何开发一个 Antd 的级联多选选择器。先看效果: Github,Sandbox 阅读完这篇文章,不仅可以学会如何实现级联多选的功能,还可以顺便学会: 如何发布一个 Typescript 编写…

node mysql安装目录_nodejs 指定全局安装路径和缓存路径

1、前提&#xff1a;已安装 nodejs(nodejs官网 https://nodejs.org), 并且已将其添加到了环境变量 path 中&#xff1b;2、进入cmd命令行&#xff0c;然后输入 node -v &#xff0c;测试是否安装成功&#xff0c;出现版本号就表示安装成功3、进入cmd命令行&#xff0c;然后输入…

mysql的sql执行原理图_性能测试MySQL之SQL运行原理

一&#xff0c;MySQL运行原理两个一样的图1&#xff0c;SQL语句执行的过程详细说明如上图所示&#xff0c;当向MySQL发送一个请求的时候&#xff0c;MySQL到底做了什么&#xff1a;a, 客户端发送一条查询给服务器。b, 服务器先检查查询缓存&#xff0c;如果命中了缓存&#xff…

mysql宽字节注入_转宽字节注入详解

在mysql中&#xff0c;用于转义的函数有addslashes&#xff0c;mysql_real_escape_string&#xff0c;mysql_escape_string等&#xff0c;还有一种情况是magic_quote_gpc&#xff0c;不过高版本的PHP将去除这个特性。首先&#xff0c;宽字节注入与HTML页面编码是无关的&#xf…

mysql集群软件有哪些_浅谈数据库集群软件优缺点有哪些

满心狼藉回答时间&#xff1a;2019-12-05向TA提问集群(Cluster)是由两台或多台节点机(服务器)构成的一种松散耦合的计算节点集合&#xff0c;为用户提供网络服务或应用程序(包括数据库、Web服务和文件服务等)的单一客户视图&#xff0c;同时提供接近容错机的故障恢复能力。集群…

错误:在keystone中无法找到默认角色user_第四章 keystone认证组件安装1

1、在控制节点安装rabbitmq、memcached组件apt-get -y install rabbitmq-server memcached python-pymysql # 设置openstack用户 rabbitmqctl add_user openstack password #后一个password是密码&#xff0c;需要特别注意&#xff0c;要与后面组件访问时的密码一致 #设置ope…

ubuntu加了张固态_将ubuntu系统迁移到ssd固态

朋友送了一个固态硬盘给我&#xff0c;因此将原机械硬盘上的系统迁移到固态硬盘上。原机械硬盘(dev/sdb)装有win10和ubuntu双系统。分区情况如下&#xff1a;sda1&#xff1a;ESP分区sda2&#xff1a;资料sda3&#xff1a;资料sda4&#xff1a;swap分区&#xff0c;被我干掉了&…

centos编译mysql5.6_centos7上编译安装mysql5.6

注意&#xff0c;在做实验室统一关闭防火墙做的&#xff0c;在生产环境需要做防火墙规则的&#xff0c;大家要注意&#xff0c;做的时候尽量都是模仿生产环境的&#xff0c;比如服务一般都在/data/soft下面&#xff0c;尽量避免在/usr/local/下面。安装编译mysql所需要的软件[r…