Apache Ant介绍

Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。

优点:

  • 使用java开发,并用xml存储build信息,因此是跨平台的。
  • 程序员可以自己扩展Ant。程序员可以自己写java程序来扩展Ant,创建自己的tasks。

特点:

  •  Ant使用XML来存储build信息,在xml文件里有很多task的定义,默认使用的文件是build.xml
  • Ant可以通过<exec>标签来实现调用shell
  •  

 

一、Windows下安装Ant

1、在ant的官网下载zip版本的压缩包

官网: http://ant.apache.org/bindownload.cgi

下载apache-ant-1.10.10-bin.zip,解压到本地盘

 

2、环境变量配置

1)添加一个新的系统变量ANT_HOME,指定为ant的安装位置D:\apache-ant-1.10.10

 

2)在CLASSPATH里指定ant的lib目录

 

3)在PATH里指定ant的bin目录

 

4)检查Ant的配置

执行命令:

ant -version

 

5)编写build.xml文件

功能:将文件D:\jacoco\test.txt拷贝到D:\jacoco\test目录下,如果存在同名文件,覆盖;basedir为.表示的是当前目录

 

build.xml文件,放在D:\jacoco目录下,在D:\jacoco目录下执行ant命令(build.xml文件自动被识别)

<?xml version="1.0" encoding="GBK"?>
<project name="测试脚本" default="copyfile" basedir=".">
	<target name="copyfile">
		<copy file="D:\jacoco\test.txt" todir="D:\jacoco\test" overwrite="true"/>
	</target>
</project>

 执行结果:文件拷贝到对应目录

 

二、CentOS下安装Ant

预留位置

 

三、build.xml文件说明

创建FirstBuild.xml文件

 

1、<project>元素

name属性:标识工程名

basedir:指示根目录

default:标识默认执行的target,如果运行ant时不指定属性,Ant将执行这个target(target的name为copyfile的任务);

<project name="MyFirstAntProject" basedir="." default="copyfile">

 

2、<property>元素

定义了两个全局属性,分别是dir.name和file.name

这些属性是可选的,但使用属性会更方便,尤其是便于维护,一种更有效的方式是将这些属性放到一个专门文件里,从而使这个xml文件更加灵活,易于重用。

<property name="dir.name" value="${basedir}/mydir"/>
<property name="file.name" value="file1.txt"/>

 

3、要执行的<targets>元素

定义3个target任务,在copyfile任务运行前,先执行makedirectory任务;--denpends属性配置前置target任务

<target name="makedirectory" description="Create directory mydir">
    <mkdir dir="${dir.name}"/>
</target>
<target name="copyfile" depends="makedirectory" description="Copy files">
    <copy file="${file.name}" todir="${dir.name}"/>
</target>
<target name="clean" description="Clean up task">
    <delete dir="${dir.name}"/>
</target>

 

4、第一次运行FirstBuild.xml文件:ant -buildfile <filename> <target-name>

运行命令格式:没有使用-buildfile参数,那么Ant将默认使用build.xml,如果没有build.xml,那么Ant将报错;

ant -buildfile <filename> <target-name>

 

FirstBuild.xml文件内容:先创建目录,再将文件拷贝到创建的目录中

<?xml version="1.0" encoding="UTF-8" ?>
<project name="MyFirstAntProject" basedir="." default="copyfile">
    <property name="dir.name" value="${basedir}/mydir"/>
    <property name="file.name" value="file1.txt"/>

    <target name="makedirectory" description="Create directory mydir">
        <mkdir dir="${dir.name}"/>
    </target>
    <target name="copyfile" depends="makedirectory" description="Copy files">
        <copy file="${file.name}" todir="${dir.name}"/>
    </target>
    <target name="clean" description="Clean up task">
        <delete dir="${dir.name}"/>
    </target>
</project>

运行命令前文件目录截图:

 

运行命令:

ant -buildfile FirstBuild.xml

 

运行命令后文件目录截图:自动创建了mydir目录,再将file1.txt拷贝到mydir目录中

 

在文件中定义的property可以被Ant的参数所覆盖,如下面使用yourdir取代mydir:

ant运行的命令:

ant -buildfile FirstBuild.xml -Ddir.name=yourdir

 

运行后结果:自动创建了yourdir目录,再将file1.txt拷贝到yourdir目录中

 

一般在build.xml中都会有clean这个target,其作用有些像卸载软件程序:

运行命令:删除mydir目录

ant -buildfile FirstBuild.xml clean

运行结果:mydir目录被删除了 

 

运行命令:删除yourdir目录

ant -buildfile FirstBuild.xml clean -Ddir.name=yourdir

 

 

 

四、通过ant方式使用Jacoco远程统计代码覆盖率

查看文章:https://blog.csdn.net/nikeylee/article/details/117354875

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐