ant脚本编写
使用ant脚本前的准备
1、下载一个ant安装包。如:apache-ant-1.8.4-bin.zip。解压到E盘。
2、配置环境变量。新增ANT_HOME:E:\apache-ant-1.8.4;PATH增加:E:\apache-ant-1.8.4\bin。
3、检查ant是否配置完成。运行->cmd输入:ant -version。查看是否打印ant的版本号。
打包的实质
生成jar包的实质
1、编译工程src文件夹下的Java文件,生成相应的class文件。
2、将所有的class文件集合成jar包。
生成war包的实质
1、编译工程src文件夹下的java文件,生成相应的class文件。
2、将工程WebContent下的除了class文件和jar包以外的文件,全部拷贝到war包的对应目录下。
3、将编译生成的class文件,全部拷贝到war包WEB-INF/classes文件夹下。
4、将工程lib中的jar包,全部拷贝到war包的WEB-INF/lib下。最后压缩成war包。
一个生成war包的ant脚本代码
<?xml version="1.0" encoding="UTF-8"?> <!-- 定义一个工程,默认任务为warFile。 -->
<project name="Visit" default="warFile" basedir="."> <!-- 定义属性,打成war包的名称。 -->
<property name="warFileName" value="VisitFiles.war"></property> <!-- 定义路径,编译java文件时用到的jar包。 -->
<path id="project.lib">
<fileset dir="${basedir}/WebContent/WEB-INF/lib">
<include name="**/*.jar"/>
</fileset>
</path> <!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->
<target name="clean">
<delete dir="${basedir}/build" />
<mkdir dir="${basedir}/build" />
</target> <!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->
<target name="compile" depends="clean">
<javac srcdir="${basedir}/src" destdir="${basedir}/build" includeantruntime="false">
<classpath refid="project.lib">
</classpath>
</javac>
</target> <!-- 定义默认任务,将class文件集合成jar包。 -->
<target name="warFile" depends="compile">
<!-- 删除原有war包。 -->
<delete dir="${basedir}/${warFileName}" />
<!-- 建立新war包。 -->
<war destfile="${basedir}/${warFileName}" webxml="${basedir}/WebContent/WEB-INF/web.xml">
<!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
<fileset dir="${basedir}/WebContent">
<include name="**/**.*" />
<exclude name="**/*.jar"/>
<exclude name="**/*.class"/>
</fileset>
<!-- 将jar和class文件拷贝到war包的对应路径下。 -->
<lib dir="${basedir}/WebContent/WEB-INF/lib" />
<classes dir="${basedir}/build" />
</war>
</target> </project>
另一个例子:
<?xml version="1.0" encoding="UTF-8"?>
<project name="gsApi" basedir="." default="afterClean">
<description>gsApi</description>
<tstamp prefix="start">
<format property="timestamp" pattern="yyyy_MM_dd" />
<format property="vsstimestamp" pattern="yyyy_MM_dd_hh_mm" />
</tstamp>
<property name="projectName" value="gsApi"></property>
<property name="src" value="../" />
<property name="debugging" value="on" />
<property name="classes" value="WEB-INF/classes">
</property>
<property name="lib" value="WEB-INF/lib"></property>
<property name="config" value="../resources" /> <property name="srcDir" value="./webapp"></property> <target name="init">
<tstamp>
<format property="build.time" pattern="yyyy-MM-dd HH:mm:ss aa" />
</tstamp>
<echo message="build time : ${build.time}" />
</target> <target name="clean" depends="init">
<delete dir="${classes}" />
</target> <target name="prepare" depends="clean">
<mkdir dir="${classes}" />
<copy todir="${classes}">
<fileset dir="${config}">
<include name="**/*.*" />
</fileset>
</copy>
</target> <target name="compile" depends="prepare">
<javac srcdir="${src}" destdir="${classes}" debug="true" includeantruntime="false" debuglevel="lines,vars,source" encoding="UTF-8" fork="true" memoryMaximumSize="512m">
<classpath>
<fileset dir="${lib}">
<include name="**/*.jar" />
</fileset>
</classpath>
<compilerarg line="-XDignore.symbol.file"/>
</javac>
</target> <target name="mkwar" depends="compile">
<war destfile="../../../target/${projectName}.war" webxml="${basedir}/WEB-INF/web.xml">
<fileset dir="${basedir}/">
<include name="**/*.*" />
</fileset>
</war>
</target> <target name="afterClean" depends="mkwar">
</target> </project>
ant脚本编写的更多相关文章
- android多lib库工程的自动批量构建--编写ant脚本
		
基本配置--build.properties 首先编写基本配置build.properties ,主要配置如下: android sdk所在目录 编译项目所使用的项目版本 Jdk所在目录 以及签名时, ...
 - 利用ant脚本 自动构建svn增量/全量 系统程序升级包
		
首先请允许我这样说,作为开发或测试,你一定要具备这种 本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方式.开发人员提交了代码后,可以自动构建.打包.部署到测试环境. ...
 - Ant 脚本打印系统属性变量、ant内置属性
		
Ant 脚本打印系统属性变量.ant内置属性 作用 编写ant脚本的时候,经常会引用到系统属性,本脚本用于打印系统常用属性(System.getProperties)与环境变量(Environment ...
 - 利用ant脚本 自动构建svn增量/全量 系统程序升级包【转】
		
引文:我们公司是做自己使用产品,迭代更新周期短,每次都花费较多时间和精力打包做增量更新,发现了一篇文章用于 自动构建svn增量/全量 系统程序升级包,收藏之,希望可以通过学习,更加简化我们的工作. 文 ...
 - Ant脚本简介与基础知识
		
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6624003.html 一:Ant是什么 Ant相当于Linux环境下的shell脚本,只不过是用xml文档来 ...
 - TestNG配合ant脚本进行单元测试
		
上面就是一个简单的SSM框架的整合,数据库来自宜立方商城的e3-mall采用一个简单的spring-mvc和spring以及mybatis的整合 单元测试代码为 TestUserByTestNG.ja ...
 - Linux 脚本编写基础
		
txt去重 http://man.linuxde.net/sort Linux 脚本编写基础 http://www.cnblogs.com/linn/archive/2007/03/05/664 ...
 - SecureCRT中python脚本编写
		
SecureCRT中python脚本编写学习指南 SecureCRT python 引言 在测试网络设备中,通常使用脚本对设备端进行配置和测试以及维护:对于PE设备的测试维护人员来说使用较多是Secu ...
 - LoadRunner脚本编写(转)
		
性能测试工程师要懂代码么?答案是必须的.好多测试员认为在loadrunner中编写脚本很难很牛X ,主要是大多测试人员并未做过开发工作,大学的那点程序基础也忘记的差不多了.还有非计算机专业出身的测试员 ...
 
随机推荐
- Monogb基本概念及基本操作
			
MongoDB是面向文档的数据库. 索引:MongoDB支持通用辅助索引,能进行多种快速查询,也提供唯一的.复合的和地理空间索引能力. 存储JavaScript:开发人员不必使用存储过程了,可以直接在 ...
 - "由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案
			
先使用如下命令登录到服务器: mstsc /v:{服务器IP} /admin 然后再使用下列方法之一即可. 方法一: 1.单击“开始→运行”,输入“gpedit.msc”打开组策略编辑器窗口,依次定位 ...
 - IO复用(Reactor模式和Preactor模式)——用epoll来提高服务器并发能力
			
上篇线程/进程并发服务器中提到,提高服务器性能在IO层需要关注两个地方,一个是文件描述符处理,一个是线程调度. IO复用是什么?IO即Input/Output,在网络编程中,文件描述符就是一种IO操作 ...
 - Nodejs创建https服务器(Windows 7)
			
为了实验一下WebRTC,搭了个简单的https服务器.说说步骤: 生成OpenSSL证书 使用Nodejs的https模块建立服务器 OpenSSL 证书 我机子Windows 7,安装了Cygwi ...
 - 通过.htaccess文件让Magento加速
			
Magento提速的方法很多,通 过.htaccess文件开启GZip压缩可以非常明显的让Magento加速.在Magento初始安装中已经包含了.htaccess文件,我们只需 要把.htacces ...
 - hadoop问题锦集(一)-搭建集群环境时的常见问题
			
1.没有主机的路由 1.namenode与datanode之间ping不通了 2.防火墙得关闭: ufw status ufw disabled 2. ssh localhost ssh:connec ...
 - 六   GPU 并行优化的几种典型策略
			
前言 如何对现有的程序进行并行优化,是 GPU 并行编程技术最为关注的实际问题.本文将提供几种优化的思路,为程序并行优化指明道路方向. 优化前准备 首先,要明确优化的目标 - 是要将程序提速 2 倍? ...
 - Canvas俄罗斯方块
			
写在前面 潜水博客园多年,从未写过博客.最近才注册博客,遂将很久前写的俄罗斯方块分享出来.第一次写博客,不喜勿喷... 游戏说明 游戏操作:J向左,L向右,I旋转,K快速下降 游戏基于HTML can ...
 - ANTLR3完全参考指南读书笔记[07]
			
前言 真正意义上的程序员都很懒,懒的连多余的一行代码也不写. 如果能将底层满手油污的活儿都可以交给别人去做,自己就扮演个智囊团成员的角色,生活会比想象中的还要惬意. 严格的按照指令执行长时间不知疲倦的 ...
 - 今天想把iphone4刷成ios7.3beta,折腾半天,成功
			
今天想把iphone4刷成ios7.3beta,折腾半天,成功 总结如下 1 确认你是无锁机,要是有锁的,就先算了吧.我手里的是台版的无锁,这关过了. 2 得是干净非越狱的,一开始是4.2.1版本的越 ...