初学ant

ant是一款基于java的构建工具,随着应用程序的生成过程变得更加复杂,确保在每次生成期间都使用精确相同的生成步骤,同时实现尽可能多的自动化,以便及时产生一致的生成版本。
下载和安装
        1.下载地址, http://ant.apache.org/bindownload.cgi
         2.安装.  设置环境变量 ANT_HOME到下载文件的解压目录,在path中添加ant的命令,即: %ANT_HOME%/bin(windows).同时也要设置JAVA_HOME。
    3.(可选的)在ant安装目录运行命令:ant -f fetch.xml -Ddest=system,去获得一些ant任务的依赖包,如果不执行,一些依赖的ant任务是无效的。
4.检验。 在命令行键入"ant"命令,如果出现
Buildfile: build.xml does not exist!
Build failed
说明安装成功。
       做个小例子:
<!--
	目的是练习ant,方式是将下面这个项目的class文件打成jar,然后将整个项目打成war包
	项目目录结构,这是一个eclipse的web工程目录结构,当然也可以不必是这种结构。这主要是为了练习,不想去凑web工程需要的各个部分,就直接用这个了。
    exam
    	-build -存放class文件
    	-business  源文件夹
    	-common    源文件夹
    	-test   测试文件夹
    	-WebContent
    		  -app js文件夹
    		  -resource 存放css,image等
    		  -META-INF
    		  -WEB-INF
    		  		-web.xml
    		  		-classes 存放classes
    		  		-lib 存放jar
    		  -index.html
   -->
<project name="MyProject" default="buildwar" basedir="D:\otherwp\exam">
    <description>
        simple example build file
    </description>
   
  <!-- set global properties for this build -->
  <property name="build" location="build"/>
  <property name="business" location="business"/>
  <property name="common" location="common"/>
  <property name="test" location="test"/>
	<property name="destination" location="H:\ant\exam"/>
	<property name="tomcatlib" location="D:\apache-tomcat-7.0.26\lib"/>
	
	<path id="lib">
		<fileset dir="${basedir}\WebContent\WEB-INF\lib">
			<include name="**/*.jar"/>
		</fileset>
		<fileset dir="${tomcatlib}">
			<include name="**/*.jar"/>
		</fileset>
		<!--
		<pathelement path=""/> 
		<pathelement location=""/> 
		location属性指定了相对于project基目录的一个文件和目录,而path属性接受逗号或分号分隔的一个位置列表。path属性一般用作预定义的路径
		也可通过<fileset>元素指定路径。构成一个fileset的多个文件加入path-like structure的顺序是未定的。-->
  </path>
  
  <target name="clean">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the build directory structure used by compile -->
    <delete dir="${build}\classes"/>
    <delete dir="${destination}"/>
  </target>

  <target name="compile" depends="clean" description="compile the source " >
    <!-- Compile the java code from ${src} into ${build} -->
    	<mkdir dir="${build}\classes"/>
    	<!--打印lcasspath-->
    	<property name="myclasspath" refid="lib"/>  
    	<echo  message ="${myclasspath}"/>
   	<!--编译多个目录,目录之间用冒号分隔-->
    <javac srcdir="${business}:${common}:${test}" 
		destdir="${build}\classes"
		target="1.5" 
		debug="on"
		classpath="${lib}"
		optimize="true"
		encoding="UTF-8" >
		<classpath refid="lib"></classpath> 
		</javac>
		<!--注意:我测试的时候,将classpath以属性的方式放在javac节点中不行,以javac子节点的形式可以,这情况正常吗?懂的还望指点一二-->
		<!--试试在javac节点使用属性 classpathref="lib" -->
		<!--
		destdir:指明编译过后存放位置
		includes:必须包括的文件模式的列表,以逗号或空格分隔。如果忽略,将包括所有文件。
		excludes:必须排除的文件模式的列表,以逗号或空格分隔。如果忽略,将不排除任何文件。
		encoding: 指定编译文件的编码
		target:根据特定的vm版本生成class文件
		optimize:指出是否应该用优化方式编译源代码,默认为 off。
		 debug: 是否产生调试信息,默认off。
		 ...
		--> 
	</target>

  <target name="dist" depends="compile"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${destination}"/>
    <mkdir dir="${destination}/lib"/>
    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
    <jar jarfile="${destination}/lib/MyProject-${DSTAMP}.jar" basedir="${build}\classes"/>
  </target>
	<!--
	只要你有web工程的各个组成部分(webxml,lib,classes),就可以打成war包
	-->
	<target name="buildwar" depends="dist">
		 <mkdir dir="${destination}/war"/>
		 <war destfile ="${destination}/war/WebTest.war"  webxml ="${basedir}/WebContent/WEB-INF/web.xml">
            <!--  拷贝WebRoot 下文件夹-->
             <fileset dir ="${basedir}/WebContent">
             <exclude name="WEB-INF;META-INF"/>
             	</fileset>
            <!--  拷贝lib 目录下的jar 包-->
            <lib dir ="${basedir}/WebContent/WEB-INF/lib"/>
            <!--  拷贝build/classes 下的class 文件-->
            <classes dir ="${build}\classes"/>
        </war>
		</target>
 
</project>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值