`
yushan
  • 浏览: 145948 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Ant自动构建总结

    博客分类:
  • j2ee
阅读更多

 

最近在项目中用到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
1
0
分享到:
评论

相关推荐

    ant 学习与总结

    Apache Ant是一个基于Java的构建工具。从理论上讲,也是一种类似于Make的工具,只是去除了Make工具的缺点。 既然已经有了make, gnumake, nmake, jam以及其他的构件工具,为什么还要Ant呢?因为Ant的早期开发者...

    JAVA_Ant详细介绍与应用

    用Ant实现Java项目的自动构建和部署。 JAVA_Ant详细介绍与应用。 Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它...

    ant1.9资源

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。 一. 安装与配置 下载地址:...

    利用RationalBuildForge对基于WebSphereApplicationServer的应用进行自动化构建

    用ANT构建EAR包4.使用JMX来部署应用5.利用BuildForge进行自动化构建6.总结附录A参考资料IBMRationalBuildForge(RBF)是基于Client/Server模式的流程执行框架,提供了任务调度以及自定义运行步骤等功能。本文将描述...

    IDEA及Gradle使用总结

    解决ant构建上的繁琐代码,并且也支持读取maven的配置形式,依赖maven的支持包结构好了,平时你们使用eclipse发布的时候,不要说你没用过自动构建,eclipse的android项目是用ant的构建方式。如果你要加渠道发布,你...

    Maven学习资料个人总结

    Apache Maven一个潜在的基于java的apache ant的构建工具的替代者。两者之间的比较: 第一:ant脚本是可以直接运行在maven中的。maven和ant最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POM...

    Gradle总结供各位下载

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。

    iuhyiuhkjh908u0980

    仿照Appfuse 提供一个完全自动化的ant构建脚本.在线SHOP的数据库建模图例已经 在博客中贴出.感兴趣的和我一起搭建,嘻嘻 文档博客地址: http://forum.sinomagazine.com 开发环境: Jcreator-4.5 JDK-1.5 Ant-1.6.1 ...

    swing界面设计之JTree

    通过 Ant 自动下载依赖软件 10 设置 Maven 10 通过 Maven 自动下载依赖软件 12 设置 Eclipse 13 下载依赖的 JAR 文件并在 Eclipse 的 classpath 中定义这种依赖性 15 创建 to-do 列表:基本的 Swing 和 Spring 应用...

    Hibernate中文详细学习文档

    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...

    Hibernate参考文档

    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...

    hibernate 体系结构与配置 参考文档(html)

    用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. 使...

    Hibernate+中文文档

    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...

    Hibernate 中文 html 帮助文档

    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...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    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...

Global site tag (gtag.js) - Google Analytics