
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">
可以使用gradle tasks --all
全部查看所有Ant目标,包括诸如“编译”,“ jar”和“ javadoc”之类的依赖目标。 下一个屏幕快照对此进行了演示。
javacodegeeks.com/wp-content/uploads/2014/01/gradleImportedAntProjectAllTasks.png">
下一个屏幕快照演示了如何从Gradle构建中运行默认的“所有”目标。
javacodegeeks.com/wp-content/uploads/2014/01/gradleImportedAntProjectAllTargetsRun.png">
正如构建清单和图像所示,将现有的Ant构建导入Gradle构建是一个简单的过程。
翻译自: https://www.javacodegeeks.com/2014/01/evolving-gradle-build-from-ant-build-importing-ant-build-file.html
gradle