Ant自动构建总结

 

最近在项目中用到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学习过程,测试通过,如有那些不足之处或缺陷或有更好的,请大家指出谢谢;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值