Java构建工具之Ant超入门

字体大小: 中小 标准 ->行高大小: 标准
Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。 

http://ant.apache.org/ 

版本:apache-ant-1.8.4
 

1、输出信息 
Xml代码  
  1. <!-- 输出信息 -->  
  2. <echo>ANT_HOME:${ant.home}</echo>  
  3. <echo message="ANT_VERSION:${ant.version}"/>  


2、时间戳 
Xml代码  
  1. <!-- 时间戳 -->  
  2. <tstamp />  
  3. <echo message="${DSTAMP}"/>  


3、使用properties文件 
Xml代码  
  1. <property file="build.properties" />  
  2.   
  3. <!-- 使用build.properties -->  
  4. <echo message="${test.key1}"/>  


4、定义变量 
Xml代码  
  1. <!-- property定义 -->  
  2. <property name="test.property1" value="propertyA"/>  
  3.   
  4. <echo message="${test.property1}"/>  


5、导入其他Build文件 
Xml代码  
  1. <include file="included.xml"/>  
  2.   
  3. <!-- included.xml -->  
  4. <echo message="${included}"/>  
  5.   
  6. ......  
  7.   
  8. <import file="imported.xml"/>  
  9.   
  10. <!-- imported.xml -->  
  11. <echo message="${imported}"/>  


6、自定义Task 
Java代码  
  1. package com.rensanning.ant;  
  2.   
  3. import org.apache.tools.ant.BuildException;  
  4. import org.apache.tools.ant.Task;  
  5.   
  6. public class MyTask extends Task {   
  7.       
  8.     private String name;   
  9.       
  10.     private String country;  
  11.   
  12.     @Override    
  13.     public void execute() throws BuildException {    
  14.         System.out.println(name + " from " + country);  
  15.     }  
  16.   
  17.     public String getName() {  
  18.         return name;  
  19.     }  
  20.   
  21.     public void setName(String name) {  
  22.         this.name = name;  
  23.     }  
  24.   
  25.     public String getCountry() {  
  26.         return country;  
  27.     }  
  28.   
  29.     public void setCountry(String country) {  
  30.         this.country = country;  
  31.     }  
  32.       
  33. }  

Xml代码  
  1. <taskdef name="mt" classname="com.rensanning.ant.MyTask" classpath="bin"/>  
  2.   
  3. <!-- 自定义Task -->  
  4. <mt name="rensanning" country="china"/>  


7、创建文件夹 
Xml代码  
  1. <!-- 创建文件夹 -->  
  2. <mkdir dir="C:\ant\test11\10" />  
  3. <mkdir dir="C:\ant\test11\11" />  


8、删除文件夹 
Xml代码  
  1. <!-- 删除文件夹 -->  
  2. <delete dir="C:\ant\test11\11" />  


9、移动文件夹 
Xml代码  
  1. <!-- 移动文件夹 -->  
  2. <mkdir dir="C:\ant\folder\move" />  
  3. <move todir="C:\ant\folder\move">  
  4.    <fileset dir="test/folder/move"/>  
  5. </move>  


10、拷贝文件夹 
Xml代码  
  1. <!-- 拷贝文件夹 -->  
  2. <mkdir dir="C:\ant\folder\copy" />  
  3. <copy todir="C:\ant\folder\copy">  
  4.     <fileset dir="test/folder/copy">  
  5.         <include name="**/*.java" />  
  6.         <exclude name="**/*Test.java" />  
  7.     </fileset>  
  8. </copy>  


11、删除文件 
Xml代码  
  1. <!-- 删除文件 -->  
  2. <delete file="test/file/delete/deletefile.txt" />  


12、拷贝文件 
Xml代码  
  1. <!-- 拷贝文件 -->  
  2. <mkdir dir="C:\ant\file\copy" />  
  3. <copy todir="C:\ant\file\copy">  
  4.     <fileset dir="">  
  5.         <include name="**/*.java" />  
  6.         <exclude name="**/*.class" />  
  7.     </fileset>  
  8. </copy>  


13、文件重命名 
Xml代码  
  1. <!-- 文件重命名 -->  
  2. <move file="test/file/copy/C2.java" tofile="C:\ant\file\copy\RC2.java"/>  


14、修改文件中的某个值 
Xml代码  
  1. <!-- 修改文件中的某个值 -->  
  2. <replace file="C:\ant\file\copy\RC2.java" token="args" value="param"/>  


15、压缩文件 
Xml代码  
  1. <!-- 压缩文件 -->  
  2. <mkdir dir="C:\ant\file\zip" />  
  3. <zip destfile="C:\ant\file\zip\manual.zip"  
  4.      basedir="test/folder"  
  5.      includes="**/*.java"  
  6.      excludes="**/*Test.java"/>  


16、解压文件 
Xml代码  
  1. <!-- 解压文件 -->  
  2. <mkdir dir="C:\ant\file\unzip" />  
  3. <unzip src="C:\ant\file\zip\manual.zip" dest="C:\ant\file\unzip"/>  


17、移动文件 
Xml代码  
  1. <!-- 移动文件 -->  
  2. <mkdir dir="C:\ant\file\move" />  
  3. <move file="test/file/move/movefile.txt" todir="C:\ant\file\move"/>  


18、设置classpath 
Xml代码  
  1. <!-- 设置classpath -->  
  2. <path id="cp">  
  3.     <pathelement path="${java.class.path}"/>  
  4.     <fileset dir="./lib">  
  5.        <include name="**/*.jar"/>  
  6.     </fileset>  
  7. </path>  


19、编译类 
Xml代码  
  1. <!-- 编译类javac -->  
  2. <javac destdir="./bin"   
  3.     encoding="UTF-8"   
  4.     deprecation="on"   
  5.     debug="off"   
  6.     fork="true"   
  7.     memoryMaximumSize="256m">  
  8.     <src path="src"/>  
  9.     <src path="src2"/>  
  10.     <classpath refid="cp" />  
  11. </javac>  


20、运行类 
Xml代码  
  1. <!-- 运行类java -->  
  2. <java classname="com.rensanning.ant.T" classpath="bin"/>  


21、打包jar 
Xml代码  
  1. <!-- 打包jar -->  
  2. <mkdir dir="C:\ant\jar" />  
  3. <jar jarfile="C:\ant\jar\test.jar">  
  4.     <fileset dir="./bin">  
  5.         <include name="**/*" />  
  6.     </fileset>  
  7. </jar>  


22、打包war 
Xml代码  
  1. <!-- 打包war -->  
  2. <mkdir dir="C:\ant\war" />  
  3. <war destfile="C:\ant\war\myapp.war" webxml="test/war/web.xml">  
  4.   <fileset dir="test/war/html"/>  
  5.   <fileset dir="test/war/jsp"/>  
  6.   <lib dir="./lib">  
  7.     <exclude name="servlet-api.jar"/>  
  8.   </lib>  
  9.   <classes dir="./bin"/>  
  10.   <zipfileset dir="test/war/images" prefix="images"/>  
  11. </war>  


23、CVS相关 
Xml代码  
  1. <!-- CVS相关 -->  
  2. <cvspass cvsroot="${cvsroot}" password="${cvs.password}" passfile="${cvs.passfile}"/>  
  3. <cvs cvsroot="${cvsroot}" command="checkout" cvsrsh="ssh" package="myproject" dest="${basedir}" passfile="${cvs.passfile}"/>  
  4.   
  5. <cvs cvsRoot=":pserver:${cvs.user}:${cvs.password}@${cvs.server}:${cvs.reppath}"   
  6.     package="${cvs.module}"   
  7.     tag="${tag60}"   
  8.     dest="${checkoutdir}" />  


24、执行外部文件 
Xml代码  
  1. <!-- 执行外部文件 -->  
  2. <exec executable="cmd">  
  3.     <arg value="/c"/>  
  4.     <arg value="ant.bat"/>  
  5.     <arg value="-p"/>  
  6. </exec>  


25、SSH 
Xml代码  
  1. <!-- SSH -->  
  2. <sshexec host="" username="" password="" trust="true" command=""/>  


26、SCP 
Xml代码  
  1. <!-- SCP -->  
  2. <scp todir="root:123456@192.168.0.2:/usr/local/tomcat/webapps/" trust="true">  
  3.     <fileset dir="dir" id="id">  
  4.         <include name="include"/>  
  5.         <exclude name="exclude"/>  
  6.     </fileset>  
  7. </scp>  


27、文件同步 
Xml代码  
  1. <!-- 文件同步 -->  
  2. <sync todir="site">  
  3.   <fileset dir="generated-site"/>  
  4. </sync>  


28、转换文件格式 
Xml代码  
  1. <!-- 转换文件格式 -->  
  2. <native2ascii encoding="EUCJIS" src="srcdir" dest="srcdir" includes="**/*.eucjis" ext=".java"/>  


29、发送邮件 
Xml代码  
  1. <!-- 发送邮件 -->  
  2. <mail mailhost="smtp.myisp.com" mailport="1025" subject="Test build">  
  3.     <from address="me@myisp.com"/>  
  4.     <to address="all@xyz.com"/>  
  5.     <message>The {buildname} nightly build has completed</message>  
  6.     <fileset dir="dist">  
  7.     <includes name="**/*.zip"/>  
  8.     </fileset>  
  9. </mail>  

此文章由 http://www.ositren.com 收集整理 ,地址为: http://www.ositren.com/htmls/68298.html