java利用Ant腳本生成war包全過(guò)程
使用ant腳本前的準(zhǔn)備
1、下載一個(gè)ant安裝包。如:apache-ant-1.8.4-bin.zip。解壓到E盤(pán)。
2、配置環(huán)境變量。新增ANT_HOME:E:\apache-ant-1.8.4;PATH增加:E:\apache-ant-1.8.4\bin。
3、檢查ant是否配置完成。運(yùn)行->cmd輸入:ant -version。查看是否打印ant的版本號(hào)。
打包的實(shí)質(zhì)
生成jar包的實(shí)質(zhì)
1、編譯工程src文件夾下的java文件,生成相應(yīng)的class文件。
2、將所有的class文件集合成jar包。
生成war包的實(shí)質(zhì)
1、編譯工程src文件夾下的java文件,生成相應(yīng)的class文件。
2、將工程WebContent下的除了class文件和jar包以外的文件,全部拷貝到war包的對(duì)應(yīng)目錄下。
3、將編譯生成的class文件,全部拷貝到war包WEB-INF/classes文件夾下。
4、將工程lib中的jar包,全部拷貝到war包的WEB-INF/lib下。最后壓縮成war包。
一個(gè)生成war包的ant腳本代碼
<?xml version="1.0" encoding="UTF-8"?> <!-- 定義一個(gè)工程,默認(rèn)任務(wù)為warFile。 --> <project name="awp" default="warFile" basedir="."> <!-- 定義屬性,打成war包的名稱(chēng)。 --> <property name="warFileName" value="awp.war"></property> <!-- 定義路徑,編譯java文件時(shí)用到的jar包。 --> <path id="project.lib"> <fileset dir="${basedir}/lib"> <include name="**/*.jar"/> </fileset> </path> <!-- 定義任務(wù),清空任務(wù):清空原有的class文件,創(chuàng)建新的build路徑。 --> <target name="clean"> <delete dir="${basedir}/src/main/webapp/WEB-INF/classes" /> <mkdir dir="${basedir}/src/main/webapp/WEB-INF/classes" /> </target> <!-- 定義任務(wù),編譯src文件夾中的java文件,編譯后的class文件放到創(chuàng)建的文件夾下。 --> <target name="build" depends="clean"> <javac srcdir="${basedir}/src/main/java" destdir="${basedir}/src/main/webapp/WEB-INF/classes" includeantruntime="false" source="1.6" target="1.6"> <classpath refid="project.lib"> </classpath> </javac> <!--復(fù)制src/main/java下非java文件到/src/main/webapp/WEB-INF/classes--> <copy todir="${basedir}/src/main/webapp/WEB-INF/classes"> <fileset dir="${basedir}/src/main/java"> <include name="**/**.*" /> <exclude name="**/*.java"/> </fileset> </copy> </target> <!-- 定義默認(rèn)任務(wù),將class文件集合成jar包。 --> <target name="warFile" depends="build"> <!--將lib文件夾下的jar打包到WEB-INF/lib下 --> <copy todir="${basedir}/src/main/webapp/WEB-INF/lib"> <fileset dir="${basedir}/lib"> </fileset> </copy> <!-- 建立新war包。 --> <war destfile="${basedir}/${warFileName}" webxml="${basedir}/src/main/webapp/WEB-INF/web.xml"> <!-- 將非jar和非class文件拷貝到war包的對(duì)應(yīng)路徑下。 --> <fileset dir="${basedir}/src/main/webapp"> <include name="**/**.*" /> <exclude name="**/*.jar"/> <exclude name="**/*.class"/> </fileset> <!-- 將jar和class文件拷貝到war包的對(duì)應(yīng)路徑下。 --> <lib dir="${basedir}/src/main/webapp/WEB-INF/lib" /> <classes dir="${basedir}/src/main/webapp/WEB-INF/classes" /> </war> </target> </project>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
相關(guān)文章
java抓取網(wǎng)頁(yè)數(shù)據(jù)獲取網(wǎng)頁(yè)中所有的鏈接實(shí)例分享
java抓取網(wǎng)頁(yè)數(shù)據(jù)獲取網(wǎng)頁(yè)中所有的鏈接實(shí)例分享,使用方法,只要實(shí)例化HtmlParser時(shí)傳入網(wǎng)頁(yè)地址就可以了2013-12-12SpringBoot集成SFTP客戶(hù)端實(shí)現(xiàn)文件上傳下載實(shí)例
這篇文章主要為大家介紹了SpringBoot集成SFTP客戶(hù)端實(shí)現(xiàn)文件上傳下載實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08SpringBoot學(xué)習(xí)篇之@Valid與@Validated的區(qū)別
@Valid是使用Hibernate?validation的時(shí)候使用,@Validated是只用Spring?Validator校驗(yàn)機(jī)制使用,下面這篇文章主要給大家介紹了關(guān)于SpringBoot學(xué)習(xí)篇之@Valid與@Validated區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-11-11Java中如何將符號(hào)分隔的文本文件txt轉(zhuǎn)換為excel
這篇文章主要介紹了Java中如何將符號(hào)分隔的文本文件txt轉(zhuǎn)換為excel,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09Java ArrayList的基本概念和作用及動(dòng)態(tài)數(shù)組的機(jī)制與性能
在Java中,ArrayList是一個(gè)實(shí)現(xiàn)了List接口的動(dòng)態(tài)數(shù)組,它可以根據(jù)需要自動(dòng)增加大小,因此可以存儲(chǔ)任意數(shù)量的元素,這篇文章主要介紹了探秘Java ArrayList的基本概念和作用及動(dòng)態(tài)數(shù)組的機(jī)制與性能,需要的朋友可以參考下2023-12-12通過(guò)字節(jié)碼看java中this的隱式傳參詳解
這篇文章主要給大家介紹了關(guān)于如何通過(guò)字節(jié)碼看java中this的隱式傳參的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之字符串暴力匹配
字符串暴力匹配算法是指在一個(gè)長(zhǎng)字符串中暴力尋找是否包含某一子串所謂暴力匹配,就是不使用任何其他算法,將兩個(gè)字符串中的字符一一進(jìn)行比對(duì)2022-02-02IDEA導(dǎo)入Springboot項(xiàng)目,注解和pom文件不識(shí)別的解決
這篇文章主要介紹了IDEA導(dǎo)入Springboot項(xiàng)目,注解和pom文件不識(shí)別的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Java 數(shù)據(jù)類(lèi)型及類(lèi)型轉(zhuǎn)換的互相轉(zhuǎn)換實(shí)例代碼
這篇文章主要介紹了Java 數(shù)據(jù)類(lèi)型及類(lèi)型轉(zhuǎn)換的互相轉(zhuǎn)換實(shí)例代碼,需要的朋友可以參考下2020-10-10Java中實(shí)現(xiàn)WebSocket方法詳解
這篇文章主要介紹了Java中實(shí)現(xiàn)WebSocket方法詳解,WebSocket?是一種新型的網(wǎng)絡(luò)協(xié)議,它允許客戶(hù)端和服務(wù)器之間進(jìn)行雙向通信,可以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)交互,需要的朋友可以參考下2023-07-07