1.ant简介
ant 是一个由java编写的脚本工具,常用来进行打包web项目,安卓项目等。适合自动化远程部署。
2.windows 下 ant 安装
1.在官网下载ant 包,进行解压后,然后在系统变量里设置ant_home路径就好了. 运行时直接 ant + ant脚本(一个xml文件)
3.常用ant命令
1.引入文件 <property file="文件路径" />
//若是同级,则直接写文件名就好了
//若文件内时 name=zjx 引用时直接写${name}就能识别
2.定义变量
<property name="变量名" value="引用路径" />
3.文件过滤器
以下例子是对文件夹 libPath 内的jar进行过滤
<fileset dir="${libPath}">
<include name="**/*.jar" />
</fileset>
4.引用路径
<path id="自定义名称"></path>
如以下例子
<path id="tomcat.jar">
<fileset dir="${tomcat_home}/lib">
<include name="**/*.jar" />
</fileset>
</path>
嵌套引用
<path id="csx.classpath">
<path refid="web.jar" />
<path refid="tomcat.jar" />
</path>
5.创建文件夹
<mkdir dir="${文件夹}" />
6.复制文件
<copy file="源文件" tofile="目的文件" overwrite="true"></copy>
//overwrite 为true代表覆盖
7.复制文件夹及其子文件内容
<copy todir="源文件夹">
<fileset dir="子文件夹" />
</copy>
8.重命名文件
<rename src="原文件路径名" dest="现文件路径名" />
9.删除文件或者目录
<delete dir="目录名"/>
10.时间格式化
定义
<tstamp prefix="dateFormat">
<format property="normal" pattern="yy-MM-dd HH:mm:ss" />
</tstamp>
调用
<echo message="${dateFormat.normal}">时间格式化</echo>
11.正则匹配示例
<target name="changeVersion" description="版本号修改">
<replaceregexp file="${web}/WEB-INF/csx-servlet.xml" byline="true" replace="${dateFormat.dt}">
<regexp pattern="[0-9]{15}" />
</replaceregexp>
</target>
//byline 为逐行匹配,否则只会返回第一次匹配的结果
//pattern 为java正则表达式
//replace为替换内容
12.日志记录
<record name="日志路径名" loglevel="info" append="no" action="start" />
13.更新sql语句示例
<target name="updateSQL" description="更新SQL文件">
<sql driver="com.mysql.jdbc.Driver" url="${SQLUrl}" userid="${userid}" password="${password}" encoding="UTF-8" onerror="continue">
<transaction src="${SQLFile}/${warname}.txt" />
<classpath refid="csx.classpath" />
</sql>
</target>
14.target
target ant 执行的最小单位,所有的执行语句都用这个标签进行包裹
<project name="svn-test" basedir="." default="antstart"> //默认执行的目标
15.war 打包标签,用于生成war包
<war destfile="${warpath}/${warname}.war">
<fileset dir="所需资源文件"
</fileset>
<lib dir="${web}/WEB-INF/lib" />
<webinf dir="${web}/WEB-INF" />
<classes dir="${classes}" />
</war>
4.打包war 思路
1.写好所需的配置文件,将脚本和你的路径等变量分开
2.脚本的执行顺序依次为
1.加载所需的依赖文件 用path 命令引用,然后用refid引用即可
2.初始化文件,包括删除以前的编译的class文件等
3.调用svn或git更新文件,编译文件,这里以java为例:
<target depends="init" name="build" description="编译class文件">
<javac debug="true" destdir="${classes}" includeantruntime="false" source="${source}" target="${target}">
<compilerarg line="-encoding GBK " />
<src path="${src}" />
<classpath refid="csx.classpath" />
</javac>
</target>
//必须要把includeantruntime 设为false,不然环境不一样会导致编译的class不一样
4.使用war命令进行打包,包含(资源文件和代码文件)
5.进行必要的sql文件执行等
6.如果是全自动化部署的,可以先备份原服务器的war文件,然后停用
应用服务器(如tomcat),再将war包放入指定路径下,再自动开启 tomcat,完成自动化部署