在大型项目上更改构建系统可能很困难并且需要大量工作。 幸运的是,对于那些将Ant版本迁移到Gradle版本的人,Gradle提供了特别方便的机制来促进这种迁移 。 由于Gradle基于Groovy构建,并且Groovy通过AntBuilder包含内置的Ant支持,因此Gradle构建可以使用AntBuilder调用Ant任务并运行Ant目标 。 但是,Gradle提供了一种更轻松的机制来从Gradle构建中引用现有的Ant目标,同时Gradle支持通过DefaultAntBuilder 导入Ant构建 ,而这正是本文的主题。

能够从新的Gradle构建中调用现有的Ant目标是有利的,因为它允许随着时间的推移进行迁移。 几乎所有的实际工作都委托给现有的Ant构建,您几乎可以立即开始使用Gradle。 然后,在时间和优先级允许的情况下,可以将不同的Ant任务替换为Gradle任务。

为了演示在Gradle构建中导入Ant构建有多么容易,我首先提供简化的Ant构建的代码清单。

蚂蚁构建文件:

<?xml version="1.0" encoding="UTF-8"?>
<project name="JavaArrays" default="all" basedir="."><description>Java Array Utility Functions</description><property name="javac.debug" value="true" /><property name="src.dir" value="src" /><property name="dist.dir" value="dist" /><property name="classes.dir" value="classes" /><property name="javadoc.dir" value="${dist.dir}/javadoc" /><property name="jar.name" value="javaArrays.jar" /><property name="jar.filesonly" value="true" /><path id="classpath"></path><target name="-init"><mkdir dir="${classes.dir}" /><mkdir dir="${dist.dir}" /></target><target name="compile"description="Compile the Java code."depends="-init"><javac srcdir="${src.dir}"destdir="${classes.dir}"classpathref="classpath"debug="${javac.debug}"includeantruntime="false" /></target><target name="jar"description="Package compiled classes into JAR file"depends="compile"><jar destfile="${dist.dir}/${jar.name}"basedir="${classes.dir}"filesonly="${jar.filesonly}"></jar></target><target name="all"description="Compile Java source, assemble JAR, and generate documentation"depends="jar, javadoc" /><target name="javadoc" description="Generate Javadoc-based documentation"><mkdir dir="${javadoc.dir}" /><javadoc doctitle="Examples of Java Array Utility Functions"destdir="${javadoc.dir}"sourcepath="${src.dir}"classpathref="classpath"private="true"author="Dustin" /></target><target name="clean" description="Remove generated artifacts."><delete dir="${classes.dir}" /><delete dir="${dist.dir}" /></target></project>

上面的Ant构建文件具有一些相当典型的目标,它们的名称如“ compile”,“ jar”,“ javadoc”和“ clean”。 所有这些功能都可以导入Gradle构建文件中。 下一个代码清单是完成此操作的完整Gradle构建文件。

导入Ant

ant.importBuild 'build.xml'

上面显示的单行Gradle构建文件将导入前面显示的Ant构建文件。 在以下屏幕快照中可以很容易地看出其效果。 初始屏幕快照显示,单行的Gradle构建文件使“ arrays”项目可用于Gradle构建以及“所有”和“清理”的“其他任务”以及与那些Ant目标相关的描述。

可以使用gradle tasks --all全部查看所有Ant目标,包括诸如“编译”,“ jar”和“ javadoc”之类的依赖目标。 下一个屏幕快照对此进行了演示。

下一个屏幕快照演示了如何从Gradle构建中运行默认的“全部”目标。

正如构建清单和图像所示,将现有的Ant构建导入Gradle构建是一个简单的过程。

参考: 从Ant Build演变为Gradle Build:在Inspired by Actual Events博客中从我们的JCG合作伙伴 Dustin Marx 导入Ant Build文件 。

翻译自: https://www.javacodegeeks.com/2014/01/evolving-gradle-build-from-ant-build-importing-ant-build-file.html

从Ant Build演进Gradle Build:导入Ant Build文件相关推荐

  1. [ant]通过Android命令自动编译出build.xml文件

    用途: 做自动集成编译环境. 环境搭配我就不说了(SDK/环境变量等). 进入cmd界面. 进入项目目录. 输入: android.bat list target  来查询我们现有的版本list有哪些 ...

  2. Android Studio配置gradle时或导入别人项目时提示Could not find com.android.tools.build:gradle

    Android Studio配置gradle时或导入别人项目时提示Could not find com.android.tools.build:gradle 配置完环境变量后,cmd运行 gradle ...

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

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

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

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

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

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

  6. 使用Gradle引导旧式Ant构建

    Gradle提供了几种不同的方式来利用您现有的对Ant的投资,包括积累的知识和您已经放入构建文件中的时间. 这可以极大地方便将Ant生成的项目移植到Gradle的过程,并为您提供逐步进行此操作的路径. ...

  7. Gradle for Android-创建build变体

    开发app时,通常都有好几个版本.最常见的就是有一个用来手动测试及保证质量的测试版本和一个生产版本.这些版本通常都有不同的设置.例如,测试版本的API的URL就不同于生成版本的.除此之外,还可能有一个 ...

  8. Android Studio 编译异常Could not execute build using Gradle installation解决办法

    Android Studio 编译异常Could not execute build using Gradle installation解决办法 参考文章: (1)Android Studio 编译异 ...

  9. Gradle插件获取各种build目录

    Gradle插件获取各种build目录 apk在打包过程中会在build目录下产出很多临时文件,而我们在编写插件的时候也经常会有去修改某个临时文件内容的情况,这个时候如何找到对应的目录地址呢? 首先先 ...

最新文章

  1. JS如何深度复制对象和数组,避免指针变量引用修改值
  2. SpringData —— HelloWorld
  3. 不同网段互PING,对不?
  4. php七牛云储存图片,wordpress使用七牛云存储图片 | 厘米天空
  5. Dubbo自定义异常message过长解决
  6. 一步步将 SAP Commerce Mock 应用部署到 SAP BTP Kyma Runtime
  7. linux磁盘冗余阵列
  8. mysql表空间被占用,同名表无法创建或导入
  9. 数学C语言编程,数学规划 (最速下降法,c语言编程).doc
  10. 利用光盘恢复grub引导器
  11. 为什么需要建设者模式
  12. 机器学习面试-其他重要算法
  13. Openwrt 镜像安装
  14. pcs增加mysql资源_pcs命令配置示例
  15. 齐向东透露工信部检测360浏览器
  16. 多个换行符\n替换为1个换行
  17. 未来的计算机科技画,未来科技生活绘画作品有哪些
  18. 12月思考随笔和资料记录
  19. android换台电脑打包签名,Android 使用Android Studio + Gradle 或 命令行 进行apk签名打包 -电脑资料...
  20. Acrel-5000型能耗监测系统实现各配电回路用电监测、管理

热门文章

  1. 反射、HashMap、ArrayList与LinkedList区别
  2. 6 使用soap客户端_网络协议 20 - RPC 协议(上)- 基于XML的SOAP协议
  3. myeclipse窗口布局控件任意_木辛老师的编程课堂:Python和Qt第2讲之布局管理初探(三)...
  4. java国际化——Locale+数字格式
  5. Comparable and Comparator API
  6. 简单的hibernate环境搭建、自动生成model/配置/hibernate.xml配置文件
  7. jdk 取整数_JDK 15中的确切绝对整数
  8. jax-rs jax-ws_什么是JAX-RS注释? (第3部分)
  9. docker 镜像选择_为什么选择Docker?
  10. 使用Apache Cassandra设置SpringData项目