用Ant工具管理Web应用
一. 安装配置Ant:下载地址为http://jakarta.apache.org,假设解压Ant的目录为<ANT-HOME>,接下来需在操作系统中设置如下环境变量:
1. ANT_HOME:ant的安装目录;
2. JAVA_HOME:JDK的安装目录;
3. PATH:把%ANT_HOME%/bin目录添加到PATH变量中,以便从命令行下直接运行ant;
二.创建build.xml文件:
1. 每个工程都对应一个build.xml文件,这个文件包含了与这个工程有关的路径信息和任务;
2. 每个build.xml文件都包含一个project和至少一个target元素;
3. target元素中包含一个或多个任务元素,任务是一段可执行代码,ant提供了内置任务集,用户也可开发自己的任务元素;
4. 最常用的构建工程的ant内置任务描述有:
? property:设置name/value形式的属性;
? mkdir:创建目录;
? copy:拷贝文件或文件夹;
? delete:删除文件或文件夹;
? javac:编译Java源文件:
? war:为web应用打包;
? javadoc:生成JAVA文档;
? jar:打包文档;
? java:运行java类;
三.build.xml元素简介:
1. 根元素"project":<project name=''工程名称" default="工程默认的target元素(必须指定)" basedir="工程基路径(如果设置为'.'就表示工程基路径为build.xml文件所在的路径)">;
2. target元素:<target name="任务名称" depends="执行本target之前必须完成的target">;
3. property元素:<property name="属性名" value="属性值">;另:<property environment="env"/> <property name="servletpath" value="${env.CATALINA_HOME}/common/lib/servlet-api.jar"/>,以上代码设置了一个系统 环境属性env,通过它可以访问系统环境变量,${env.CATALINA_HOME}代表了CATALINA_HOME系统环境变量;
4. mkdir元素:<mkdir dir="指定需创建的目录">,如果路径内容以"/",""或"c:"之类开始,就表示绝对路径,否则表示相对路径,相对路径的基路径取决于project元素的basedir属性;
5. copy元素:<copy todir="指定把文件拷贝到哪个目录"><fileset dir="指定从哪个目录拷贝文件"><include name="指定需要拷贝哪些文件"/><exclude name="指定不需要拷贝哪些文件"/><!--</span-->fileset><!--</span-->copy>(对于<include name="WEB-INF/**">表示需要拷贝WEB-INF目录下所有的文件,子目录及子目录下的文件,如果是<include name="WEB-INF/*.*">表示只拷贝WEB-INF目录下所有的文件,不包含子目录及子目录下的文件);
6. javac元素:用来编译Java源程序,<javac srcdir="Java源程序存放的目录" destdir="生成的class文件存放的目录,目录结构与package语句一致" classpath="在编译时需引用的jar文件路径(多个文件路径间用':'号分隔)"><!--</span-->javac>;
7. war元素: <war warfile=”生成的war文件名” webxml=”web应用的web.xml文件”><lib dir=”web应用的lib目录”/><classes dir=”web应用的classes目录”/><fileset dir=”指定把该目录下的所有文件加入到包中”/><!--</span-->war>;
8. echo元素: 它的作用与Dos的echo命令相似,用于向控制台回显文本,<echo message=”文本内容”/>或<echo>文本内容<!--</span-->echo>;
9. jar元素: <jar jarfile=”打包的jar文件名”><fileset dir=”指定需打包的文件目录”/><!--</span-->jar>;
10. javadoc元素: <javadoc packagenames="${packages}" sourcepath="${build.src}" destdir="${build.javadocs}" author="true" version="true" use="true" splitindex="true" windowtitle="${Name} API" doctitle="${Name}"><classpath refid="classpath"/><!--</span-->javadoc>;
四.运行Ant:
1. 直接运行ant,如果不带任何参数,ant会在当前路径下搜索build.xml文件,如果找到,就运行project元素的default属性指定的target;
2. 带参数执行ant:ant [-buildfile build.xml文件路径 [target名称]];
五.使用习惯:
1. target一般分为:
1) usage: 打印本脚本的帮助信息(缺省);
2) init: 初始化信息,变量等;
3) build(or compile): 编译;
4) javadoc: 生成Java API文档;
5) jar: 将生成文件打包成Jar包;
6) war: 将生成文件打包成war包(web应用)
7) clean: 清除过程文件,目录;
8) all: 全部任务执行;
2. Ant在项目中使用时的一般目录结构:
+-dist //放置编译,打包后的最终文件(classes文件,jar包,war包)
+-src
+-package //放置java源文件
+-webroot //jsp源文件及相关配置文件
+-build //放置编译后的文件
+-lib //放置编译所需要的相关类文件(jar包)
+-doc //放置生成的API文档
注:以上部分内容引用自<<Tomcat与Java Web开发技术详解>>一书.