在大型项目上更改构建系统可能很困难并且需要大量工作。 幸运的是,对于那些将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构建是一个简单的过程。
翻译自: https://www.javacodegeeks.com/2014/01/evolving-gradle-build-from-ant-build-importing-ant-build-file.html