ant介紹
ant是構建工具
ant的好處
跨平臺 --因爲ant是使用java實現的,所以它跨平臺
使用簡單--與ant的兄弟make比起來
語法清晰--同樣是和make相比
功能強大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。當你自己開發一些ant插件的時候,你會發現它更多的功能。
1、到http://ant.apache.org/bindownload.cgi
下載Ant,我使用的版本是1.70
解壓縮下載文件到你的工作目錄,這裏以d:\ant_home爲例
2、新增系統變量
新增系統變量:ANT_HOME,內容:d:\ant_home\apache-ant-1.70
在PATH環境變量中加入Ant的bin目錄:%ANT_HOME%\bin
3、測試安裝
CMD進入命令行界面,運行Ant
出現如下提示,說明安裝成功
E:\srcgen\webwork>ant
Buildfile: build.xml does not exist!
Build failed
用ant構建過程中出現的幾個問題:
1、ant 編碼 GBK 的不可映射字符(出現一堆亂碼)
產生問題的原因:
由於JDK是國際版的,在編譯的時候,如果我們沒有用-encoding參數指定我們的JAVA源程序的編碼格式,則javac.exe首先獲得我們操作系統默認採用的編碼格式,也即在編譯java程序時,若我們不指定源程序文件的編碼格式,JDK首先獲得操作系統的file.encoding參數(它保存的就是操作系統默認的編碼格式,如WIN2k,它的值爲GBK),然後JDK就把我們的java源程序從file.encoding編碼格式轉化爲JAVA內部默認的UNICODE格式放入內存中。然後,javac把轉換後的unicode格式的文件進行編譯成.class類文件,此時.class文件是UNICODE編碼的,它暫放在內存中,緊接着,JDK將此以UNICODE編碼的編譯後的class文件保存到我們的操作系統中形成我們見到的.class文件。對我們來說,我們最終獲得的.class文件是內容以UNICODE編碼格式保存的類文件,它內部包含我們源程序中的中文字符串,只不過此時它己經由file.encoding格式轉化爲UNICODE格式了。當我們不加設置就編譯時,相當於使用了參數:javac
-encoding gbk XX.java,當然就會出現不兼容的情況。
解決辦法:在編譯時加上字符指定,如
<javac srcdir="${src}" destdir="${build}/WEB-INF/classes"
encoding="utf-8" classpathref="classpath">
2、當用ant1.8版本進行構建時,出現如下錯誤信息:
warning
'includeantruntime' was not set , defaulting to build.sysclasspath=last; set to false for repeatable builds.
原因和解決辦法:That's caused by a misfeature introduced in Ant 1.8. Just add an attribute of that name to the javac task, set it to false, and forget it ever happened.
即在編譯時增加如下屬性: <javac destdir="${output.project.classes.dir}" encoding="UTF-8" includeantruntime="false">
3,ant編譯時出錯,出現如下錯誤:
無法訪問
javax.servlet.jsp.tagext.JspIdConsumer
這時,我的解決辦法是,把tomcat下面的jar給加上了,然後就不會出現這個錯誤了
<path
id="classpath">
<pathelement path="${basedir}"/>
......
<fileset dir="D:\ProjectIDE\apache-tomcat-6.0.29\lib/">
<include name="*.jar"/>
</fileset>
</path>