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任务相关推荐

  1. 区分基于Ant目标的Gradle任务

    在我的博客文章< 从Ant Build演变Gradle构建:导入Ant构建文件>中 ,我演示了如何使用Gradle内置的基于AntBuilder的Ant支持在Gradle构建中导入Ant目 ...

  2. gradle ant_使用Gradle引导旧式Ant构建

    gradle ant Gradle提供了几种不同的方式来利用您在Ant上的现有投资,无论是积累的知识还是您已经放入构建文件的时间. 这可以极大地方便将Ant生成的项目移植到Gradle的过程,并为您提 ...

  3. 从Ant Build演进Gradle Build:导入Ant Build文件

    在大型项目上更改构建系统可能很困难并且需要大量工作. 幸运的是,对于那些将Ant版本迁移到Gradle版本的人,Gradle提供了特别方便的机制来促进这种迁移 . 由于Gradle基于Groovy构建 ...

  4. Gradle介绍1-入门和IDEA整合(Gradle Wrapper)

    1. Gradle 入门 1.1.Gradle 简介 Gradle 是一款Google 推出的基于 JVM. 通用灵活的项目构建工具, 支持 Maven,JCenter 多种第三方仓库;支持传递性依赖 ...

  5. 【Android Gradle 插件】工程根目录下 build.gradle 配置文件 ( 远程仓库配置 | 依赖配置 | 所有子模块配置 | task clean 任务 )

    文章目录 一.工程根目录下 build.gradle 配置文件 1.基本作用 2.远程仓库配置 3.依赖配置 3.所有子模块配置 4.task clean 任务 Android Plugin DSL ...

  6. 【转载】Gradle学习 第十一章:使用Gradle命令行

    转载地址:http://ask.android-studio.org/?/article/94 This chapter introduces the basics of the Gradle com ...

  7. gradle 修改java代码_自定义一个gradle插件动态修改jar包Class文件

    动态修改jar包中的class文件,预埋占位符字符串,在编译代码时动态植入要修改的值.记录一下整个过程及踩过的坑. 创建一个Android项目,再创建一个Android library,删掉里面所有代 ...

  8. 【ISAR成像定标方法(1)—转台目标的RD成像算法MATLAB仿真】

    目录 前提介绍 ISAR成像基本流程 ISAR成像转台模型与回波建模 转台模型 发射信号与回波信号分析 转台目标RD成像算法 转台目标RD成像的仿真实验与分析 结语 前提介绍  ISAR成像定标方法的 ...

  9. android studio gradle 添加jar,android studio学习----通过gradle来导入jar包

    转载地址:http://www.th7.cn/Program/Android/201507/495477.shtml File->Project Structure 可以打开下面的图: 1.通过 ...

最新文章

  1. 曾经安全难为智 除却山石不是云——山石网科举办2016年度金融用户峰会
  2. 《价值50亿的10句话》读后感(学生作业分享)
  3. Android蓝牙串口通讯【转】
  4. Centos7搭建SVN服务步骤说明
  5. IDEA一定要改的8条配置
  6. C 线程的使用~(上)
  7. HTML5火焰文字特效DEMO演示---转载
  8. thinkphp数据库连接池_Thinkphp5框架下的数据库连接
  9. 麦克风阵列盲源分离技术
  10. 在要求或期待别人做到某事的时候,先反思下自己是否值得。就好比我常会期望有很多人会记住我生日是哪天,但......
  11. Ubuntu 下 Apache2 与Tomcat5 的交配指南.(转自互联网)
  12. 开课吧Java课堂:是什么TreeMap类
  13. 谈谈我对攻读计算机研究生的看法(转一个牛人文章)
  14. 电容式传感器位移性能试验报告_称重传感器的构成
  15. python菜鸟教程 | for 循环
  16. 浅谈toB交付质量体系建设
  17. Code Review关注点
  18. [Paper Reading]开始写Paper Reading Report
  19. discuz上传图片html,Discuz编辑器H5上传
  20. 是谁拿走了哈萨克斯坦的油气收益?

热门文章

  1. 【模板】EK求最大流、dinic求最大流
  2. codeforces1472 G. Moving to the Capital
  3. 2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲
  4. Detection of Extraterrestrial KMP匹配 重复k次子串 好题
  5. Spark SQL(二)之DataSet操作
  6. 汇编语言(二)之数值求和
  7. Spring 基于注解的配置
  8. JVM-对象的存活与死亡
  9. 计划得一步一步实施,题库首先是第一步!
  10. 使用ueditor实现多图片上传案例——ServiceImpl层(ShoppingServiceImpl)