天天看點

Ant 基礎

(1) Ant 用途

Ant的作用還是很大的,如樓上說到的它可以用來做編譯、部署、打包、測試等等工作,雖然現在的IDE環境已經內建了很多這樣的功能,但是通常情況下我們還是會很頻繁的使用到Ant,一般有這樣一些原則:

1.如果你發現你的工作有有許多是每天要做的,或者是經常要反複執行的工作,那麼可以考慮使用Ant,這樣可以将這樣的工作編寫為Ant腳本,便于維護和定期執行

2.當你是系統管理者,或者部署人員時,可以考慮使用Ant

3.當你是測試人員,希望在夜晚離開公司時,自動執行一些單元測試,當白天到公司時就能看到結果時,可以考慮使用Ant

4.當你是版本管理人員時可以考慮使用Ant

(2) Ant 搭建環境設定ANT_HOME,PATH中添加ANT_HOME目錄下的bin目錄

測試一下你的設定,開始-->運作-->cmd進入指令行-->鍵入 ant 回車,如果看到

Buildfile: build.xml does not exist!

Build failed

那麼恭喜你你已經完成ant的設定

<?xml version="1.0" encoding="UTF-8"?>
<!-- name:對應工程的名字;default:需要的預設任務(運作"ant"不指明任務時執行的任務) -->
<project name="antTest" default="main" basedir="."> 
<!-- 建立目錄結構
src       JAVA源碼編輯目錄
lib       jar包(類庫)存放目錄
classes   編譯生成的class檔案存放目錄
WebRoot   jsp檔案存放地方
config    配置檔案存放地方
dist      war和javadoc存放目錄  
-->
<property name="appName" value="antTest"/>
<property name="src.dir" value="src"/>
<property name="webroot.dir" value="WebRoot"/>
<property name="lib.dir" value="${webroot.dir}/WEB-INF"/>
<property name="classes.dir" value="bin"/>
<property name="webapps.dir" value="D:/Tomcat6.0/webapps/antTest"/>
<property name="dist.dir" value="dist"/>  
<!-- Compilation Classpath 路徑設定 -->
<path id="compile.classpath">
 <pathelement location="${classes.dir}"/>
 <fileset dir="${lib.dir}" includes="**/*.jar" />
</path>
<!-- Clean Target 删除先前的目錄結構 -->
<target name="clean">
 <delete dir="${clesses.dir}"/>
 <delete dir="${webapps.dir}"/>
 <delete dir="${dist.dir}"/>
 </target>
 <!-- Prepare Target 建立打包的目的目錄結構 -->
 <target name="prepare">
 <mkdir dir="${classes.dir}"/>
</target>
<!-- Compile Target 編譯代碼,在這之前先由prepare建立目錄結構 --> 
<target name="compile" depends="prepare" description="Compile java sources">
 <javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true">
  <classpath refid="compile.classpath"/>
 </javac>
<!-- 把資源檔案下的xml和properties 檔案拷貝到classes下面-->
 <copy todir="${classes.dir}">
  <fileset dir="${src.dir}">
   <include name="**/*.xml"/>
   <include name="**/*.properties" />
  </fileset>
 </copy>
</target>
<!-- Deploy Target 在tomcat下建立應用目錄并部署應用 -->
<target name="deploy" depends="compile" description="Deploy application to servlet container">
 <mkdir dir="${webapps.dir}"/>
  <copy todir="${webapps.dir}">
   <fileset dir="${webroot.dir}"/> 
  </copy>
 <mkdir dir="${webapps.dir}/WEB-INF/classes"/>
  <copy todir="${webapps.dir}/WEB-INF/classes">
   <fileset dir="${classes.dir}" ><include name="**/**" />
   </fileset>
  </copy>
 <mkdir dir="${webapps.dir}/WEB-INF/lib"/>
  <copy todir="${webapps.dir}/WEB-INF/lib">
   <fileset dir="${lib.dir}" includes="*.jar" />
  </copy>
</target>
<!-- Dist Target 預設的target 将應用打包成war,在這之前先執行clean和deploy -->
<target name="main" depends="clean,javadoc,deploy" description="Create binary destribution"> 
 <jar jarfile="${dist.dir}/${appName}.war" basedir="${webapps.dir}"/>
</target><!-- Javadoc Target 生成javadoc -->  
<target name="javadoc" depends="compile" description="Create Javadoc API documentation">  
 <mkdir dir="${dist.dir}/docs/api"/>  
 <javadoc sourcepath="${src.dir}" destdir="${dist.dir}/docs/api" packagenames="*.*"/>  
</target>  
</project>      

繼續閱讀