(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>