最近在项目中用到Ant自动构建,在此记录Ant的学习及使用过程,以备后用;也希望刚初学Ant的javaeyer们提供一些帮助,呵呵.
一.Ant环境搭配
下载ANT包 http://ant.apache.org/bindownload.cgi
俺用的是apache-ant-1.7.1-bin.zip
在搭配及使用Ant前,需要安装好JDK,及配置好JDK的环境;例如JDK安装在D:\javaprogram\Java;
WINDOWS XP:
右击我的电脑-->属性-->高级-->环境变量
JAVA_HOME: D:\javaprogram\Java\jdk1.6.0_02;
PATH: %JAVA_HOME%\bin;%ANT_HOME%\bin ;
CLASSPATH: .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar ;
将apache-ant-1.7.1-bin.zip解压在D:\javaprogram\ 下;设置Ant环境:
ANT_HOME:D:\javaprogram\apache-ant-1.7.1
PATH:%JAVA_HOME%\bin;%ANT_HOME%\bin
(添加在原先设置的path之后)
测试ant是否配置好:
打开 cmd,运行 ant -version 如果出现 Apache Ant version 1.7.1 compiled on June 27 2008
则配置成功 ;
Linux中搭配Ant:
首先要安装好JDK(Linux中的jdk安装在俺的博客中有说道) ;俺用的是apache-ant-1.7.1-bin.tar.gz,将其解压在
/usr/local/下,修改 /etc/profile 文件,在原先配置的JDK路径中加入以下内容(红色为添加的内容)
ANT_HOME=/usr/local/apache-ant-1.7.1
JAVA_HOME=/usr/java/jdk1.6.0_10
JRE_HOME=/usr/java/jdk1.6.0_10/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ANT_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export ANT_HOME
JAVA_HOME JRE_HOME PATH CLASSPATH
保存退出;在shell下运行 source /etc/profile;
linux中测试ant是否测试成功:
shell下运行:ant -version 出现 Apache Ant version 1.7.1 compiled on June 27 2008 (恭喜配置成功)
二.Ant的build.xml配置文件
以下build.xml的配置内容是网上各个资料的总结,及测试通过的,功能有:编译,打包, 部署,生成javadoc 和 junitdoc ;
<?xml version="1.0" encoding="utf-8"?>
<!-- ==================================================== -->
<!-- Build file for AntDemoWeb-->
<!-- Author: yushan -->
<!-- ==================================================== -->
<project name="AntDemoWeb" default="dist" basedir=".">
<!-- 建立目录结构
src JAVA源码编辑目录
lib jar包(类库)存放目录
bin 编译生成的class文件存放目录
dist war,junitReport和javadoc存放目录
WebRoot jsp文件存放地方
-->
<property name="appName" value="AntDemoWeb" />
<property name="src.dir" value="../src" />
<property name="lib.dir" value="../WebRoot/WEB-INF/lib" />
<property name="dist.dir" value="../dist" />
<property name="classes.dir" value="../WebRoot/WEB-INF/classes" />
<!-- web 项目部署环境 -->
<property name="webapps.dir" value="D:/javaprogram/tomcat6.0/webapps/AntDemoWeb" />
<property name="webroot.dir" value="../WebRoot" />
<!-- Compilation Classpath 路径设置 -->
<path id="compile.classpath">
<pathelement location="${classes.dir}" />
<fileset dir="${lib.dir}" includes="**/*.jar" />
</path>
<!-- Clean Target 删除先前的目录结构 -->
<target name="clean" description="Delete old build and dist directories">
<delete dir="${clesses.dir}" />
<delete dir="${dist.dir}" />
<delete dir="${webapps.dir}" />
<echo>clean is complete!</echo>
</target>
<!-- Prepare Target 建立打包的目的目录结构 -->
<target name="prepare">
<mkdir dir="${classes.dir}" />
<mkdir dir="${dist.dir}" />
<echo>prepare is complete!</echo>
</target>
<!-- Compile Target 编译代码,在这之前先由prepare建立目录结构 encoding="utf-8" 处理乱码 -->
<target name="compile" depends="prepare" description="Compile java sources">
<!-- Compile java class as necessary -->
<!-- 注意:如果有两个源代码目录应该: srcdir="${src.dir};${test.dir}",用分号隔开-->
<javac srcdir="${src.dir}" destdir="${classes.dir}" encoding="utf-8" debug="true">
<classpath refid="compile.classpath" />
</javac>
<copy todir="${classes.dir}">
<fileset dir="${src.dir}">
<include name="**/*.xml" />
<include name="**/*.properties" />
</fileset>
</copy>
<echo>compile is complete!</echo>
</target>
<!-- Deploy Target 在tomcat下建立应用目录并部署应用 -->
<target name="deploy" depends="compile" description="Deploy application to servlet container">
<!-- Copy the contents of the build directory -->
<mkdir dir="${webapps.dir}" />
<copy todir="${webapps.dir}">
<fileset dir="${webroot.dir}" />
</copy>
<mkdir dir="${webapps.dir}/WEB-INF/classes" />
<copy todir="${webapps.dir}/WEB-INF/classes">
<fileset dir="${classes.dir}">
<include name="**/**" />
</fileset>
</copy>
<mkdir dir="${webapps.dir}/WEB-INF/lib" />
<copy todir="${webapps.dir}/WEB-INF/lib">
<fileset dir="${lib.dir}" includes="*.jar" />
</copy>
<echo>deploy is complete!</echo>
</target>
<!-- Dist Target 将应用打包成war,在这之前先执行javadoc和deploy -->
<target name="dist" depends="clean,deploy" description="Create binary destribution">
<jar jarfile="${dist.dir}/${appName}.war" basedir="${webapps.dir}" />
<echo>dist is complete!</echo>
</target>
<!-- Javadoc Target 生成javadoc -->
<!--这里 的encoding 就是指的你 java 文件的编码格式 javac 和javadoc 都有这个参数charset 指的是 生成 doc 后的编码方式 javadoc 的参数-->
<target name="javadoc" depends="compile" description="Create Javadoc API documentation">
<mkdir dir="${dist.dir}/docs/api" />
<javadoc sourcepath="${src.dir}" charset="utf-8" encoding="utf-8"
source="1.6" destdir="${dist.dir}/docs/api">
<classpath refid="compile.classpath" />
</javadoc>
<echo>javadoc is complete!</echo>
</target>
<!-- Report Target 生成 junit 报告 -->
<target name="report" depends="compile">
<mkdir dir="${dist.dir}/junitReport" />
<junit printsummary="on" fork="true" showoutput="true">
<classpath refid="compile.classpath" />
<formatter type="xml" />
<batchtest todir="${dist.dir}/junitReport">
<fileset dir="${classes.dir}">
<include name="**/*Test.class" />
</fileset>
</batchtest>
</junit>
<echo>auto test successfully</echo>
<junitreport todir="${dist.dir}/junitReport">
<fileset dir="${dist.dir}/junitReport">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${dist.dir}/junitReport" />
</junitreport>
<echo>junit report with HTML Documents successfully!</echo>
</target>
</project>
将该文件放在 项目的src同级目录下,也可以放在项目根目录下,但必须改变其相应的路径如:
三.运行build.xml
1.myeclipse中:
2. 在windows 中的cmd 中 ,找到该文件所在的目录运行 ant 即可执行 build.xml定义的默认target;
(在此注意项目的编码都是utf-8,否则根据这个build.xml会出现乱码不能编译或不能生产javadoc;如果是其他的编码应改变build中的编码格式)
3. Linux中的shell中:找到build所在的目录运行 ant 即可执行 build.xml定义的默认target; 可以 ant javadoc
(红色为target名称)
以上内容为俺的ant学习过程,测试通过,如有那些不足之处或缺陷或有更好的,请大家指出谢谢;
- 大小: 12.2 KB
分享到:
相关推荐
Apache Ant是一个基于Java的构建工具。从理论上讲,也是一种类似于Make的工具,只是去除了Make工具的缺点。 既然已经有了make, gnumake, nmake, jam以及其他的构件工具,为什么还要Ant呢?因为Ant的早期开发者...
用Ant实现Java项目的自动构建和部署。 JAVA_Ant详细介绍与应用。 Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它...
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。 一. 安装与配置 下载地址:...
用ANT构建EAR包4.使用JMX来部署应用5.利用BuildForge进行自动化构建6.总结附录A参考资料IBMRationalBuildForge(RBF)是基于Client/Server模式的流程执行框架,提供了任务调度以及自定义运行步骤等功能。本文将描述...
解决ant构建上的繁琐代码,并且也支持读取maven的配置形式,依赖maven的支持包结构好了,平时你们使用eclipse发布的时候,不要说你没用过自动构建,eclipse的android项目是用ant的构建方式。如果你要加渠道发布,你...
Apache Maven一个潜在的基于java的apache ant的构建工具的替代者。两者之间的比较: 第一:ant脚本是可以直接运行在maven中的。maven和ant最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POM...
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。
仿照Appfuse 提供一个完全自动化的ant构建脚本.在线SHOP的数据库建模图例已经 在博客中贴出.感兴趣的和我一起搭建,嘻嘻 文档博客地址: http://forum.sinomagazine.com 开发环境: Jcreator-4.5 JDK-1.5 Ant-1.6.1 ...
通过 Ant 自动下载依赖软件 10 设置 Maven 10 通过 Maven 自动下载依赖软件 12 设置 Eclipse 13 下载依赖的 JAR 文件并在 Eclipse 的 classpath 中定义这种依赖性 15 创建 to-do 列表:基本的 Swing 和 Spring 应用...
1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6...
1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6...
用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6. 使...
1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6...
1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6...
1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第二部分 - 关联映射 1.3.1. 映射Person类 1.3.2. 单向Set-based的关联 1.3.3. 使关联工作 1.3.4. 值类型的集合 1.3.5. 双向关联 1.3.6...