999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

使用Ant實(shí)現(xiàn)構(gòu)建和部署

2008-12-31 00:00:00
電腦知識(shí)與技術(shù) 2008年22期

摘要:介紹在基于WSL開發(fā)過(guò)程中,如何使用ANT工具開發(fā)腳本來(lái)自動(dòng)構(gòu)建和部署應(yīng)用程序,從而幫助團(tuán)隊(duì)實(shí)現(xiàn)開發(fā)J2EE大型項(xiàng)目的編譯部署工作自動(dòng)化和規(guī)范化。

關(guān)鍵詞:Ant;部署;XML

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)23-00721-03

Using Ant To Achieve Building and Deployment

ZHOU Hong

(Topsthink Software Company, Fuzhou 350003, China)

Abstract: This paper introduced that how to use the ANT to automatically build and deploy applications in the development process Based on WSL, and helping the team who develop large-scale J2EE projects to achieve compiler and deployment of automated and standardized.

Key words: ANT; deploy; XML

1 引言

做為一個(gè)J2EE項(xiàng)目的測(cè)試人員,當(dāng)項(xiàng)目開發(fā)的規(guī)模越來(lái)越大,越來(lái)越繁重時(shí),每次都重新編譯,打包,測(cè)試,部署等一些操作都變得非常復(fù)雜而重復(fù)。雖然有IDE編程開發(fā)工具可以實(shí)現(xiàn)這些操作,但每次開啟jbuilder這樣的工具實(shí)在費(fèi)時(shí)。

而Ant正是這樣一個(gè)令構(gòu)建工作變得簡(jiǎn)單的工具,您不用不斷的使用javac、copy、cd、 java指令來(lái)達(dá)成這些目的,只要撰寫好構(gòu)建文件(buildfile),一個(gè)以XML組織的文件檔案,之后,最簡(jiǎn)單的情況下,您只要下達(dá)ant指令,所有的一切就可以完成。

Ant是Apache的Jakarta項(xiàng)目的一部分,它集成了java、javac、JAR、WAR和其他一些Java任務(wù)。它也支持多種文件系統(tǒng)任務(wù),獲得了操作系統(tǒng)無(wú)關(guān)性。在Windows下編寫的腳本也可以在Solaris下工作得很好。

2 ANT工具的安裝

如果是基于WSL開發(fā),只要客戶端安裝了bea weblogic platform就有ant工具了,將它的路徑“C:\\bea\\weblogic81\\server\\bin”寫到環(huán)境變量path里,就可以在cmd窗口里直接執(zhí)行了。

ANT的安裝也可以從Apache的網(wǎng)站下載:http://ant.apache.org,目前最新的版本是ANT1.6.2。當(dāng)然你的機(jī)子首先已經(jīng)安裝上了JDK,并且設(shè)置了JAVA_HOME等這些純Java的設(shè)置了。然后再設(shè)置ant的環(huán)境變量。

3 Ant的運(yùn)行

沒有指定任何參數(shù)時(shí),Ant會(huì)在當(dāng)前目錄下查詢build.xml文件。如果找到了就用該文件作為buildfile。如果你用 -find 選項(xiàng)。Ant就會(huì)在上級(jí)目錄中尋找buildfile,直至到達(dá)文件系統(tǒng)的根。要想讓Ant使用其他的buildfile,可以用參數(shù) -buildfile file,這里file指定了你想使用的buildfile。你可以用Ant -help命令查看ant運(yùn)行各項(xiàng)參數(shù)說(shuō)明。

可以指定執(zhí)行一個(gè)或多個(gè)target。當(dāng)省略target時(shí),Ant使用標(biāo)簽的default屬性所指定的target。

4 Ant的構(gòu)建文件的開發(fā)

當(dāng)開始一個(gè)新的項(xiàng)目時(shí),首先應(yīng)該編寫Ant構(gòu)建文件。構(gòu)建文件定義了構(gòu)建過(guò)程,并被團(tuán)隊(duì)開發(fā)中每個(gè)人使用。Ant構(gòu)建文件默認(rèn)命名為build.xml,也可以取其他的名字。只不過(guò)在運(yùn)行的時(shí)候把這個(gè)命名當(dāng)作參數(shù)傳給Ant。構(gòu)建文件可以放在任何的位置。

Ant構(gòu)建文件是XML文件。每個(gè)構(gòu)建文件定義一個(gè)唯一的項(xiàng)目(Project元素)。每個(gè)項(xiàng)目下可以定義很多目標(biāo)(target元素),這些目標(biāo)之間可以有依賴關(guān)系。當(dāng)執(zhí)行這類目標(biāo)時(shí),需要執(zhí)行他們所依賴的目標(biāo)。

下面是一個(gè)示例。

<?xml version=\"1.0\"?>

<project name=\"trMytest\" default=\"Mytest\" basedir=\".\">

<property name=\"src\" value=\"src/trMytest\"/>

<property name=\"build\" value=\"classes\"/>

<property name=\"lib\" value=\"lib\"/>

<property name=\"jarname\" value=\"ejbMytest.jar\"/>

<property name=\"warname\" value=\"trMytest.war\"/>

<property name=\"earname\" value=\"earMytest.ear\"/>

<property name=\"appname\" value=\"earMytest\"/>

<property name=\"web_inf\" value=\"DEFAULTROOT/WEB-INF\"/>

<property name=\"meta_inf\" value=\"META-INF\"/>

<property name=\"app\" value=\"../../app\"/>

<property file=\"../../config.properties\"/>

<target name=\"init\" depends=\"clean\">

<mkdir dir=\"${build}\"/>

<mkdir dir=\"${lib}\"/>

</target>

<target name=\"clean\">

<delete dir=\"${build}\"/>

<delete dir=\"${lib}\"/>

<delete file=\"${jarname}\"/>

<delete file=\"${warname}\"/>

<delete file=\"${earname}\"/>

</target>

<target name=\"compile\" depends=\"init\">

<javac srcdir=\"${src}\" destdir=\"${build}\">

<classpath>

<pathelement location=\"${mainpath}/wwcom/wwcom.jar\"/>

<fileset dir=\"${mainpath}/add-packet\">

<include name=\"*.jar\"/>

</fileset>

</classpath>

</javac>

</target>

<target name=\"jar\" depends=\"compile\">

<mkdir dir=\"${build}/META-INF\"/>

<copy todir=\"${build}/META-INF\">

<fileset dir=\"${meta_inf}\"/>

</copy>

<jar jarfile=\"${jarname}\" >

<fileset dir=\"${build}\"/>

<fileset dir=\"${meta_inf}\"/>

</jar>

</target>

<target name=\"war\" depends=\"compile\">

<war destfile=\"${warname}\" webxml=\"${web_inf}/web.xml\">

<classes dir=\"${build}\"/>

</war>

</target>

<target name=\"ear\" depends=\"war,jar\">

<ear destfile=\"${earname}\" appxml=\"application.xml\">

<fileset dir=\".\" includes=\"*.jar,*.war\"/>

</ear>

<copy file=\"${earname}\" todir=\"${app}\"/>

</target>

<target name=\"deploy\" depends=\"ear\">

<taskdef name=\"wldeploy\" classname=\"weblogic.ant.taskdefs.management.WLDeploy\"/>

<wldeploy action=\"deploy\"

source=\"${earname}\"

name=\"${appname}\"

adminurl=\"${adminurl}\"

user=\"${username}\"

password=\"${password}\"

targets=\"${server}\"

upload=\"true\"

debug=\"true\"/>

</target>

<target name=\"Mytest\" depends=\"deploy\"/>

</project>

示例中引用了一個(gè)屬性文件config.properties,是用來(lái)描述開發(fā)環(huán)境的信息的。config.properties編寫示例如下:

mainpath=D:/webback/app

adminurl=t3://localhost:7001

server=myserver

username=weblogic

password=weblogic

將上述兩個(gè)文件放在同級(jí)目錄下,在該目錄中運(yùn)行ant,就可以自動(dòng)完成Mytest的編譯、打包和部署。當(dāng)然你也可以只運(yùn)行一個(gè)target,如:ant deploy,只完成部署。

5 讓大型應(yīng)用的部署變得容易

如果一次將所有的組件都部署該怎么做?分開運(yùn)行每個(gè)build.xml腳本文件很麻煩。我們可以為應(yīng)用創(chuàng)建一個(gè)運(yùn)行所有Ant構(gòu)建腳本的Ant構(gòu)建腳本。這個(gè)腳本將應(yīng)用中所有的腳本組合在一起。我們定義一個(gè)all目標(biāo),他本身沒用具體功能,只是調(diào)用所有的依賴。主構(gòu)建腳本一般放在源程序的根目錄下。進(jìn)入那個(gè)根目錄運(yùn)行\(zhòng)"ant\"命令,整個(gè)項(xiàng)目的所有組件都會(huì)被部署。

6 結(jié)束語(yǔ)

此文介紹了如何使用Ant來(lái)構(gòu)建和部署WAR、EJB和EAR文件到WLS上,以及如何使用一個(gè)主構(gòu)建腳本來(lái)管理您的項(xiàng)目。建議對(duì)于每個(gè)EJB都將JAR文件的編譯和構(gòu)建放到一個(gè)單獨(dú)的build.xml中,公共部分可以移動(dòng)到主構(gòu)建腳本中。將這些構(gòu)建腳本集成到項(xiàng)目版本控制系統(tǒng)中,同源代碼一樣被受控,這對(duì)項(xiàng)目管理是非常的益的。

參考文獻(xiàn):

[1](美)海特.使用Ant進(jìn)行Java開發(fā)[M].北京:電子工業(yè)出版社,2005.

[2](美)Mark Artiges. BEA WebLogic Server 8.1大全[M].袁毅,譯.北京:機(jī)械工業(yè)出版社,2005.

主站蜘蛛池模板: 暴力调教一区二区三区| 在线观看国产精美视频| 91精品国产自产在线观看| 亚洲精品无码不卡在线播放| 日本不卡在线播放| 青青草原国产免费av观看| 欧美一区二区三区香蕉视| 国产日韩精品欧美一区灰| 99精品国产自在现线观看| 国产精品蜜芽在线观看| 久久精品无码中文字幕| 国产1区2区在线观看| 中字无码精油按摩中出视频| 国产国语一级毛片在线视频| 亚洲无码日韩一区| 国产日本欧美在线观看| 亚洲 日韩 激情 无码 中出| 98超碰在线观看| 国产97视频在线观看| 欧美特黄一免在线观看| 亚洲性色永久网址| 国产精品亚洲日韩AⅤ在线观看| 国产黄色免费看| 日本色综合网| 亚洲第一精品福利| 一个色综合久久| 一区二区欧美日韩高清免费| 九九久久99精品| 亚洲第一黄片大全| 91伊人国产| 热久久这里是精品6免费观看| 欧美国产日产一区二区| 内射人妻无套中出无码| 国产主播福利在线观看| 欧美激情伊人| 又爽又黄又无遮挡网站| 午夜无码一区二区三区| 1024你懂的国产精品| a级免费视频| 精品无码国产自产野外拍在线| 在线不卡免费视频| 99re在线视频观看| 三级视频中文字幕| 麻豆a级片| 国产波多野结衣中文在线播放| 99re经典视频在线| 99视频国产精品| 亚洲a级在线观看| 国产一级视频在线观看网站| 亚洲日韩欧美在线观看| 国产尤物jk自慰制服喷水| 亚洲欧美日韩久久精品| 亚洲中文无码av永久伊人| 日韩精品无码不卡无码| 一级爆乳无码av| 国产精品亚欧美一区二区| 亚洲欧美日韩另类| 狼友视频国产精品首页| 欧美日韩中文字幕在线| 2021国产精品自产拍在线| 日韩精品久久久久久久电影蜜臀| 久久久久人妻一区精品| 亚洲欧美日韩色图| 免费无码又爽又黄又刺激网站| 狠狠操夜夜爽| 国产精品专区第1页| 国产精品成人一区二区| 一本大道在线一本久道| 国产精品成人啪精品视频| 国产成在线观看免费视频 | 国产精品hd在线播放| 一级成人欧美一区在线观看 | 日本一区二区不卡视频| 免费午夜无码18禁无码影院| 国产精品播放| 亚洲成人网在线播放| 国产色婷婷| 福利在线免费视频| 国产区福利小视频在线观看尤物| 亚洲午夜综合网| 国产美女视频黄a视频全免费网站| 中美日韩在线网免费毛片视频|