ant 打包实现及其总结

来源:互联网 发布:win10连接不到windows 编辑:程序博客网 时间:2024/06/05 15:09

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,完成自动化部署

原创粉丝点击