Ant学习总结

来源:互联网 发布:数据挖掘预处理技术 编辑:程序博客网 时间:2024/06/05 19:24
学习ant主要是学写build.xml配置文件(这里的例子都是自己在记事本中敲的)1.Ant是基于Java的构建工具,所以必须先有jdk2.Ant环境变量的配置:       a.ANT_HOME:D:\temp\ant\apache-ant-1.8.4(指向你解压的路径)   b.path: %ANT_HOME%\bin3.默认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

0 0