gradle_从Ant Build演进Gradle Build:导入Ant Build文件

news/2024/7/10 2:41:36 标签: java, python, c++, 深度学习, vue
gradle

gradle

在大型项目上更改构建系统可能很困难并且需要大量工作。 幸运的是,对于那些将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

java">ant.importBuild 'build.xml'

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

javacodegeeks.com/wp-content/uploads/2014/01/gradleImportedAntProjectTasks.png">

gradleImportedAntProjectTasks

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

javacodegeeks.com/wp-content/uploads/2014/01/gradleImportedAntProjectAllTasks.png">

gradleImportedAntProjectAllTask​​s

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

javacodegeeks.com/wp-content/uploads/2014/01/gradleImportedAntProjectAllTargetsRun.png">

gradleImportedAntProjectAllTargetsRun

正如构建清单和图像所示,将现有的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

gradle


http://www.niftyadmin.cn/n/1707970.html

相关文章

linux下kegg注释软件,KEGG数据库-pathway对应基因的注释信息下载

KEGG数据库-pathway对应基因的注释信息下载KEGG数据库pathway相关数据下载我们下载KEGG数据库的目的是为了研究目标蛋白参与了那些pathway 。 前面我们介绍了KEGG 数据库中蛋白序列的下载方式&#xff0c;现在来介绍一下patyway 相关数据的下载方式。这个主要采用KEGG 的API进行…

Java学习笔记12(包装类+toString+关键字static+main方法+设计模式)

文章目录包装类toString关键字static单例 (Singleton)设计模式饿汉单例模式懒汉式main方法包装类 针对八种基本定义相应的引用类型—包装类&#xff08;封装类&#xff09; 应用&#xff1a; 字符串转换成基本数据类型 通过包装类的构造器实现&#xff1a; int i new Integ…

trident_Storm Trident拓扑中的错误处理

trident这篇文章总结了我在设计Storm Trident拓扑时当前的错误处理方法。 我在这里只关注代码设计&#xff0c;而不关注监督或冗余之类的部署良好实践。 由于Storm的实时流性质&#xff0c;当面对大多数错误时&#xff0c;我们最终将不得不移至下一个数据段。 在这种情况下&…

linux平台上备份win系统吗,windows、Linux/Unix及厂商OEM系统备份的对比

windows系统备份电脑在Windows下常用的Ghost类备份系统&#xff0c;需要DOS或者WinPE下操作(现在有很多一键GHOST的壳&#xff0c;所以&#xff0c;进入DOS或者PE不再是难点&#xff0c;也不需要用户有多少准备)&#xff0c;缺点是&#xff0c;恢复的时候目标分区不能小于原始备…

junit5_在JUnit中测试预期的异常

junit5单元测试用于验证一段代码是否按照开发人员的预期运行。 有时&#xff0c;这意味着检查代码是否也会引发预期的异常。 JUnit是Java单元测试的标准&#xff0c;并提供了几种验证抛出异常的机制。 本文探讨了这些选项及其相对优点。以下面的简单代码段为例。 除了编写测试以…

Java学习笔记13(理解初始化块和abstract)

文章目录初始化块非静态代码块&#xff1a;没有static修饰的代码块静态代码块&#xff1a;用static 修饰的代码块匿名类&#xff08;静态代码块的作用&#xff09;关键字final抽象类模板方法设计模式(TemplateMethod)初始化块 代码块&#xff1a; { xxxx } 初始化块是对构造器…

mockito_使用Mockito测试Spring组件

mockito我认为&#xff0c;能够对弹簧组件进行单元测试而无需使用临时测试配置加载完整的弹簧上下文&#xff0c;这是一个很大的优势&#xff0c;因为它干净&#xff0c;易于维护&#xff0c;编写速度更快&#xff0c;更改平滑。 实现此目标的一种方法是使用Mockito并告诉他用M…

Java学习笔记14(接口+工厂模式)

文章目录接口接口的特点&#xff1a;**为什么要接口**工厂模式接口 Java不支持多重继承。有了接口&#xff0c;就可以得到多重继承的效果。 接口(interface)是抽象方法和常量值的定义的集合。 从本质上讲&#xff0c;接口是一种特殊的抽象类&#xff0c;这种抽象类中只包含常量…