一、ant的前世今生
ant是Apache的一个开源项目,是一种基于Java的构建工具,ant有自己的语法和规范,通常用build.xml来承载。ant可以集成代码生成、编译、打包等功能,使用ant能做到编译、打包一系列流程的自动化,就像生产流水线,一条指令,全程自动生产。ant工具是使用Java语言编写的,所以依赖jdk,安装ant必须先安装好jdk,同样ant很多扩展的自定义的功能同样可以使用Java编写。
二、环境搭建
(1)安装ant。去Apache下载ant安装包,解压到本机指定目录,配置ant运行环境变量。
验证ant环境是否安装成功
三、ant简易语法
|(1) 在使用ant是先要下载一个ant的支持jar
(2)build.xml 常用的标签
project根标签。name属性表示项目名称,没什么作用;default属性表示默认执行命令,cmd命令行中使用ant 和ant default属性值;
property 定义类标签。可以定义一些常量值,需要注意:定义后理论不能再修改(其实可以通过第三方库修改)。比如第3行定义了一个file.dir的变量,值为”D://“,引用时使用 ${file.dir}调用。第4行,是引入一个properties文件(里面定义了很多property),相当于导包;
loadproperties 引用标签。表示引入一个properties定义集群。好处是便于封装和管理;
import 引入标签。和loadproperties不同的是,import是引入另一个构建文件,包括变量和执行命令;
target 执行标签。可以在cmd命令行中直接ant + target执行,比如以上脚本可以执行: ant build 和 ant debug。target标签中有个depends属性,表示执行命令依赖。如果要执行debug命令,会自动先执行depends里面的命令;
echo 日志标签。表示日志输出,能在cmd命令中打印显示,level属性表示:日志级别。 比较特殊的是echo中可以引用变量,用法同变量调用方式${name};
echo 日志标签。表示日志输出,能在cmd命令中打印显示,level属性表示:日志级别。 比较特殊的是echo中可以引用变量,用法同变量调用方式${name};
(3)代码实战
在任意目录创建一个名为build.xml的文件
for循环的使用
<?xml version="1.0" encoding="utf-8"?>
<project name="MyProject" default="test">
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="E:\software\Sdk\tools\apache-ant-1.10.4/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
<!--循环-->
<target name="test">
<for list="首页商城,分类,购物车,红包,个人中心" param="letter">
<sequential>
<echo>Letter @{letter}</echo>
</sequential>
</for>
</target>
</project>
命令行执行批处理脚本输出结果
switch语句
<?xml version="1.0" encoding="utf-8"?>
<project name="MyProject" default="test">
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="E:\software\Sdk\tools\apache-ant-1.10.4/ant-contrib-1.0b3.jar" />
</classpath>
</taskdef>
<!--switch-->
<target name="test">
<property name="WhatName" value="BAT"></property>
<switch value="${WhatName}">
<case value="B">
<echo>百度科技</echo>
</case>
<case value="A">
<echo>阿里巴巴</echo>
</case>
<case value="T">
<echo>腾讯科技</echo>
</case>
<case value="BAT">
<echo>三巨头</echo>
</case>
</switch>
</target>
</project>
命令行执行输出结果
文件操作
<?xml version="1.0" encoding="utf-8"?>
<project name="MyProject" default="test">
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="E:\software\Sdk\tools\apache-ant-1.10.4/ant-contrib-1.0b3.jar"/>
</classpath>
</taskdef>
<!--文件操作-->
<target name="test">
<!--在指定目录下创建一个文件夹-->
<mkdir dir="C:\Users\Administrator\Desktop\ant\test"/>
<!--把文件移动到指定的文件夹子-->
<move file="C:\Users\Administrator\Desktop\ant\test.txt" tofile="C:\Users\Administrator\Desktop\ant\test\test1.txt"/>
</target>
</project>