一、Ant是什麼?
面對一個很大的項目時,每次重新編譯,打包,測試等都會變得非常複雜,並且會多次的重複上述的幾個步驟,讓人感覺非常繁瑣。在java項目中,爲了解決這種麻煩,ant就應運而生了。它是一個將軟件編譯、測試、部署等步驟聯繫在一起加以自動化的一個工具
所謂的生成工具就是在軟件開發中用來將源代碼和其他輸入文件轉換爲可執行文件的形式。隨着應用程序的生成過程變得更加複雜,確保在每次生成期間都使用精確相同的生成步驟,同時實現儘可能多的自動化,以便及時產生一致的生成版本。
二、Ant的特點
上面介紹了什麼是Ant。既然它受到大家的歡迎,那麼它肯定有它的特別之處。
1、跨平臺性。Ant是純Java語言編寫的,所以具有很好的跨平臺性。
2、Ant可以集成到開發環境中。由於Ant的跨平臺性和操作簡單的特點,它很容易集成到一些開發環 境中去。
3、操作簡單。Ant是由一個內置任務和可選任務組成的。Ant運行時需要一個XML文件(一般我們命名爲bulid.xml)。 Ant通過調用target樹,就可以執行各種task。每個task實現了特定接口對象。
4、容易書寫。由於Ant構建文件 時XML格式的文件,所以很容易維護和書寫,而且結構很清晰
三、如何使用Ant
1、首先是要下載.zip文件
2、由於Ant是純java編寫的,是Apache下面的一個子項目。所以在安裝Ant之前,需要安裝JDK,並且配置好相應的環境變量。
3、將zip解壓縮到任意目錄,假設解壓縮到D:\apache-ant目錄中
4、新建一個ANT_HOME=D:\apache-ant
5、將ANT_HOME放到path中
6、在cmd中輸入ant,顯示如下就說明安裝成功了
7、下面最重要的工作就是編寫build.xml文件了,這裏直接給出一個例子
<?xml version="1.0" encoding="GBK"?>
<project name="任意一個名字" default="生成Hibernate配置文件" basedir=".">
<property name="src.dir" value="${basedir}/src"/>
<property name="build.dir" value="${basedir}/bin"/>
<property name="webapp.dir" value="${basedir}/src/webapp"/>
<property name="xdoclet.home" value="D:/xdoclet/xdoclet-plugins-1.0.3"/>
<!-- Build classpath 構建任務可能用到的依賴jar包路徑-->
<path id="xdoclet.task.classpath">
<fileset dir="${xdoclet.home}/lib">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${xdoclet.home}/plugins">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- 引用引入的jar包-->
<taskdef
name="xdoclet"
classname="org.xdoclet.ant.XDocletTask"
classpathref="xdoclet.task.classpath"
/>
<target name="生成Hibernate配置文件">
<xdoclet>
<fileset dir="${src.dir}/com/bjsxt/oa/model">
<include name="**/*.java"/>
</fileset>
<component
classname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"
destdir="${src.dir}"
version="3.0"
hbm2ddlauto="update"
jdbcurl="jdbc:mysql://127.0.0.1/oa_200706"
jdbcdriver="com.mysql.jdbc.Driver"
jdbcusername="root"
jdbcpassword="123456"
dialect="org.hibernate.dialect.MySQLDialect"
showsql="true"
/>
</xdoclet>
</target>
<target name="生成hibernate映射文件">
<xdoclet>
<fileset dir="${src.dir}/com/bjsxt/oa/model">
<include name="**/*.java"/>
</fileset>
<component
classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"
version="3.0"
destdir="${src.dir}"
/>
</xdoclet>
</target>
</project>
8、關於build.xml的位置:可以放在任何的位置。一般做法是放在項目頂層目錄中。 這樣可以保持項目的簡潔和清晰
9、運行ant。在eclipse中的window--->show view ---->ant。
四、一些擴展
Ant的關鍵元素和常用元素語義說明:(來自於網絡)
1、project:
ant構件文件的根元素,這個是必須的元素噢!它的三個屬性我們都已經見到過了,分別爲name、default、basedir。name屬性就是指定project的名稱了;default屬性用於指定project默認執行的target名稱;basedir屬性用於指定基路徑的位置,沒有指定或者指定爲".",則爲Ant構件文件的附目標作爲基準目錄。
2、target:
Ant的基本執行單元,它可以包含一個或多個具體的執行任務。多個target可以存在相互依賴關係(depends屬性),所以,看看它的一些屬性:
name屬性指定target的名稱,這是屬性是project元素中唯一的;depends屬性用於描述多個target之間的依賴關係,被依賴的先執行。比如,我們運行一個java程序之前必須先編譯它,所以,我們在運行的target中指定depends依賴於編譯的target。如果與多個target存在依賴關係,則要用","間隔。Ant會依照depends屬性中的target出現的順序依次執行每個target;if屬性驗證執行此target的成立條件;unless屬性與if屬性相反,驗證指定屬性爲假時所在的target執行;description屬性是對此target功能的簡短描述和說明
3、property :
該元素說得直白些,就是一變量,project裏的屬性可通過property元素來設定,也可在外部引入一文件,例如build.properties(一定程度上可增加系統的維護性,一些開源項目常這麼幹),可通過如下方式引入:<property file="build.properties"/>。
在引用property元素時,可通過將屬性名放在"${"和"}"之間,當然了,Ant本身也提供一些內置屬性,另外它也能得到的系統屬性列表與Java文檔中的System.getProperties()方法得到的屬性一致,Ant的內置屬性包括basedir()、ant.file、ant.version、ant.project.name、ant.java.version