◎筱米加步枪◎.Blog

Happy coding

Ant学习笔记

筱米加步枪 posted @ 2010年4月07日 04:10 in [ 开源框架 ] with tags ant , 3201 阅读

看Hibernate的时候发现Ant这个东东,花了3个小时查了些资料,并总结如下:

Ant是用来编译/运行/测试java程序

Ant可用于项目管理。

Ant还提供了打包,生成API文档等多功能。

总之,Ant可提高程序员的开发效率。

使用MyEcipse创建build.xml文件(如果自己写比较麻烦的话,可以用工具帮你生成,不过感觉有挺多垃圾信息)

具体方法如下:

【项目右键】>>【Export】>>【General】>>【 Ant Buildfiles】>>【 next】>>【 finish】即可

贴个下午写的一个 build.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
    <!--  
          <project>构建文件对应的一个项目
            属性介绍:
                 basedir表示项目的基准目录
                 basedir="."表示基准目录为src目录 
                 default表示默认的运行目标(必须)
                 name表示项目名
      -->
	<project basedir="." default="build" name="Ant">
    <property environment="env"/>
	<!-- 
	     <property>定义属性以及于其对应的值
	     通常:src存放java源代码文件
	         classes存放java编译后的文件
	         lib存放要用到的第三方jar包
	         dist存放打包后的jar包
	         doc存放API文档
	  -->
    <property name="src.dir" value="src/com/shine/ant"/>
    <property name="classes.dir" value="bin/com/shine/ant"/>
    <property name="lib.dir" value="lib"/>
    <property name="dist.dir" value="dist"/>
	<property name="doc.dir" value="doc"/>
	
	<!--
	    <path>定义类路径,其中值指向classes.dir
	-->
    <path id="Ant.classpath">
        <pathelement location="${classes.dir}"/>
    </path>
		
	<!-- 初始化操作 -->
    <target name="init">
    	<!--
    	     <delete>标签表示删除一个或一组文件
    	      属性介绍:
    	         dir表示要删除的目录
    	  -->

    	<delete dir="${classes.dir}" />
    	<!--
    	     <mkdir>标签表示创建目录
    	      属性介绍:
    	          dir表示要创建的目录
    	  -->
        <mkdir dir="${classes.dir}"/>
    	<!--
    	     <copy>标签用于文件或文件集的拷贝
    	     属性介绍:
    	           includeemptydirs表示制定是否拷贝空目录
    	           				    默认值为拷贝,此处不拷贝
    	           todir表示目标目录
    	-->
        <copy includeemptydirs="false" todir="${classes.dir}">
            <!--
               <fileset>表示了一组文件信息
                        属性介绍:
                        dir表示基目录
                        excludes表示需要派出的文件模式的文件列表
            -->
        	<fileset dir="${src.dir}" 
        		     excludes="**/*.launch,**/*.java"/>
        </copy>
    </target>
	<!-- 清除操作 -->
    <target name="clean">
        <delete dir="${classes.dir}"/>
    </target>
	<!--
	    <target>标签表示你要做的操作
	      		属性name表示目标的名字,起到识别作用
	      		depends表示依赖,就是要先执行clean才可以执行
	  -->
	<!-- 清除所有 -->
    <target depends="clean" name="cleanall"/>
	
    <target depends="build-project" name="build"/>
	<!-- 建立工程 -->
    <target depends="init" name="build-project">
    	<!--
    	    <javac>标签用于编译一个或一组java文件
    	             属性介绍:
    	               debug表示包含的调试信息
    	               srcdir表示源文件
    	               destdir表示class文件的输出目录
    	-->
        <javac debug="true" 
        	   srcdir="${src.dir}"  
        	   destdir="bin" >
        </javac>
    </target>
	
	<!-- 打包成jar包 -->
	<target name="pack">
		<mkdir dir="${dist.dir}"/>
		<!--
		   <jar>文件用来生成一个jar文件
		   属性介绍:
		        destfile表示生成的jar文件名
		        basedir表示被打包的文件名
		-->
		<jar destfile="${dist.dir}/ant.jar" 
			 basedir="${classes.dir}">
		    <!--
		        <exclude>表示被排除的文件
		      -->
			<exclude name="**/*.java"/>
		</jar>
    </target>
	
	<!-- 生成API文档 -->
	<target name="doc">
		<delete dir="${doc.dir}"/>
		<mkdir dir="${doc.dir}"/>
		<!--
		     <javadoc>标签用于生成javadoc-API文档
		      属性介绍:
		         destdir表示要输出的目录
		  -->
		<javadoc destdir="${doc.dir}">
			<!-- 
			    指定要被包含的文件 为src/com/shine/ant下的所有类 
			-->
			<packageset dir="src" defaultexcludes="yes">
			    <include name="com/shine/ant/**"/>
			</packageset>
		</javadoc>
	</target>
</project>

完毕~~~


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter