Ant学习总结

学习ant主要是学写build.xml配置文件(这里的例子都是自己在记事本中敲的)
1.Ant是基于Java的构建工具,所以必须先有jdk
2.Ant环境变量的配置:
       a.ANT_HOME:D:\temp\ant\apache-ant-1.8.4(指向你解压的路径)
	   b.path: %ANT_HOME%\bin
3.默认build.xml在命令行中直接输ant
  也可以是其他的 
		例如:a.xml   在命令行中输:ant -f a.xml
		
例子1:(自己在记事本中敲的)
    <?xml version="1.0"?>
	
	<!--工程-->
	<project name="firstbuild" default="demo1">
		
		<property name="p1" value="Hello Ant"/>
		
		<!--容器==数据库中的事物-->
		<target name="demo1">                             <!--不写的话,默认是缺省得,执行demo1-->
		     <!--回显HelloWorld-->                    <!--D:\temp\ant\demo>ant -f a.xml-->
		     <echo message="Hello, world"/>
			 <echo>This is a longer message stretching over owo Lines</echo>
		</target>
		
		<!--属性-->
		<target name="demo2">               
		     <!--回显属性->                  <!--D:\temp\ant\demo>ant -f a.xml demo2-->
			 <echo>${p1}</echo>
		</target>
		
		<!--拷贝-->
		<target name="demo3">
		     
			 <echo message="拷贝单个文件"/>        <!--D:\temp\ant\demo>ant -f a.xml demo3-->
			 <copy file="myfile.txt" tofile="mycopy.txt"/>
			 
			 <echo message="拷贝单个文件到指定目录下"/>        
			 <copy file="myfile.txt" todir="../some/other/dir"/>
			 
			 <echo message="拷贝一个目录到另外一个目录下"/>        
			 <copy todir="../new/dir">
				<fileset dir="src_dir"/>
			 </copy>
			 
		</target>
		
		<!--拷贝一批文件到指定目录下-->
		<target name="demo4">
		     <echo message="拷贝一批文件到指定目录下"/>        
			 <copy todir="../dest/dir">
				<fileset dir="src_dir">
					<include name="**/*.java"/>           <!--包括-->
					<exclude name="**/Test.java"/>        <!--不包括-->
				</fileset>
			 </copy>
			 <!--这个是上面的简写形式-->
			 <copy todir="../dest/dir">
				<fileset dir="src_dir" excludes="**/*.java"/>
			 </copy>
		</target>
		
		<!--删除-->
		<target name="demo5">
			
			<echo message="删除一个文件"/>
			<delete file="/lib/ant.jar"/>
			
			<echo message="删除指定目录及其子目录"/>
			<delete dir="lib"/>
			
			<echo message="删除指定的一组文件"/>
			<delete>
				<fileset dir="." includes="**/*.bak"/>
			</delete>
		</target>
		
		<!--重命名文件-->
		<target name="demo6">
		     <echo message="重命名文件/>
			 <move file="file.orig" tofile="file.moved"/>	 <!--移动或重命名一个文件-->

			 <echo message="移动或重命名一个文件到另一个文件夹下面/>
			 <move file="file.orig" todir="dir/to/move/to"/>
			
			 <echo message="将一个目录移到另外一个目录下/>
			 <move todir="new/dir/to/move/to">
			     <fileset dir="src/dir"/>
			</move>
			
			<echo message="将一组文件移到另外的目录下/>
			 <move todir="some/new/dir">
			     <fileset dir="src/dir">
					  <include name="**/*.jar"/>
					  <eclude name="**/ant.jar"/>
				 </fileset>
			</move>
		</target>
	</project>    

4.Ant核心之javac(编译java源代码)	
例子2:(自己在记事本中敲的)
    <?xml version="1.0"?>	
	<project name="firstbuild" default="run">
	     <target name="init">
		      <mkdir dir="build/classes"/>
			  <mkdir dir="dist"/>
		 </target>
		 <target name="compile" depends="init">
		      <javac srcdir="src" destdir="build/classes"/>
			  <echo>编译完成!</echo>
		 </target>
		 <target name="archive" depends="compile">
		      <jar destfile="dist/project.jar" basedir="build/classes"/>
		 </target>
		 <target name="clean" depends="init">
		     <delete dir="build"/>
			 <delete dir="dist"/>
		 </target>
		 <target name="clean" depends="init">
		     <java classname="HelloWorld" classpath="build/classes">
			 </java>
		 </target>
	</project>
	:)在javac使用属性
	     :)<property name="classpath" value=".;./xml-apis.jar;../lib/xbean.jar;./easypo.jar"/>
		 :)<property srcdir="{src}" destdir="{src}" classpath="{classpath}" debug="on"/>
		 :)路径是在property中定义的
	   
5.Ant核心任务之java(执行指定的java类)
    例一:
	   <java classname="test.Main">      <!--classname中指定要执行的类,classpath设定要使用的环境变量-->
	        <classpath>
			     <pathelement location="dist/test.jar"/>
				 <pathelement path="${java.class.path}"/>
			</classpath>
	   </java>
	    
6.Ant核心任务之jar(将一组文件打包)
     :)将{build}/classes下面的所有的文件打包到{dist}/lib/app.jar中  
        <jar destfile="{dist}/lib/app.jar" basedir="{build}/classes"/>
	 :)将{build}/classes下面的所有的文件打包到{dist}/lib/app.jar中,但是包括mypackage/test所有文件,不包括所有的Test.class
	    <jar destfile="{dist}/lib/app.jar" basedir="{build}/classes" includes="mypackage/test/** excludes=**/Test.class"/>
	 :)manifest属性指定自己的META-INF/MANIFEST.MF文件,而不是由系统生成
	    <jar destfile="{dist}/lib/app.jar" basedir="{build}/classes" includes="mypackage/test/** excludes=**/Test.class" manifest="my.mf"/>
	
7.Ant核心任务之war
   :)对war的扩展,用于大伯啊Web应用	
       例子:
	      假设我们的文件目录如下:
		  
		   thirdparty/libs/jdbc1.jar
		   thirdparty/libs/jdbc2.jar
		   build/main/com/myco/myapp/Servlet.class
		   src/metadata/myapp.xml
		   src/html/myapp/index.html
		   src/jsp/myapp/front.jsp
		   src/graphics/images/gifs/small/logo.gif
		   src/graphics/images/gifs/large/logo.gif
		   src/java/com/itcast....../*.java
		   
		   下面是我们的任务的内容:
		   <war destfile="myapp.war" webxml="src/metadata/myapp.xml">
				<fileset dir="src/html/myapp"/>
				<fileset dir="src/jsp/myapp"/>
				<lib dir="thirdparty/libs">
					<exclude name="jdbc1.jar">
				</lib>
				<classes dir="build/main"/>
				<zipfileset dir="src/graphics/images/gifs" prefix="images"/>
		   </war>
		   
		   完成后的结果:
		   
		   WEB-INF/web.xml
		   WEB-INF/lib/jdbc2.jar
		   WEB-INF/classes/com/myco/myapp/Servlet.class
		   META-INF/MANIFEST.MF
		   index.html
		   front.jsp
		   images/small/logo/gif
		   images/large/logo/gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值