




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
軟件發(fā)行安裝包(ByInstall4j)設(shè)計開發(fā)說明北京行知匯德軟件有限公司BeijingTargsoftCo.,Ltd
2012年5月G匯德墩件BeijingTargsoftCo.,Ltd修訂歷史版本注:變更類型:A—新增、M—修改、D—刪除變更日期變更原因變更類型簡要說明(變更內(nèi)容和范圍)變更人SVN版本2012-05-30創(chuàng)建A全文創(chuàng)建緱融1目的通過閱讀此文檔,開發(fā)人員可以自行設(shè)計開發(fā)本公司系統(tǒng)的向?qū)桶惭b執(zhí)行包(以下簡稱“安裝包”)。本文檔涉及如何使用Install4j和Eclipse輔助去開發(fā)向?qū)前惭b部署包。不涉及軟件系統(tǒng)本身的設(shè)計開發(fā)實現(xiàn)。2使用對象設(shè)計人員、開發(fā)人員、相關(guān)交付負責部門
3 設(shè)計開發(fā)過程說明Install4j(/products/install4j/overview.html)是-一個功能強大的,多平臺Java安裝文件生成工具,用于生成Java應(yīng)用程序本地化的安裝及應(yīng)用程序發(fā)布。install4j的優(yōu)異性在于它易于使用,緊密的集成到目標平臺,以及靈活的JRE管理與部署選項。我公司采用此工具及開發(fā)環(huán)境來實現(xiàn)產(chǎn)品的打包及交付。目前國內(nèi)用友、金蝶等大型軟件開發(fā)廠商都有產(chǎn)品采用此工具進行安裝包的開發(fā)。3.1概述Install4j開發(fā)環(huán)境項目包Install項目定義文件install4j_Eclipse...Debug目錄install4j_Eclipseintime支撐項目包Build構(gòu)建可運行安裝包Install4j開發(fā)環(huán)境項目包Install項目定義文件install4j_Eclipse...Debug目錄install4j_Eclipseintime支撐項目包Build構(gòu)建可運行安裝包Install4jDebug運行環(huán)境可執(zhí)行安裝包文EAP代碼目錄數(shù)據(jù)庫備份/數(shù)據(jù)庫初始化腳本如上圖所示:需要Eclipse與Install4j聯(lián)合搭建開發(fā)環(huán)境才能實現(xiàn)從構(gòu)建、擴展、調(diào)試到打包完整的開發(fā)過程。首先在Eclipse里搭建install4j_Eclipse支撐項目包,此項目起到支撐安裝包工程里的自定義界面、自定義Action組件的開發(fā)和調(diào)試作用,其中的i4jruntime源代碼目錄可以對自定義代碼進行深層次的跟蹤調(diào)試。用Eclipse自構(gòu)建Java工程形成安裝包自定義項目,并將install4j_Eclipse支撐項目引入構(gòu)建路徑,這樣就可以開發(fā)自定義界面、自定義Action組件了(自定義組件的作用見下節(jié))。自定義工程的LIB目錄可以放進自定義工程所需的Jar包。安裝Install4j以后,建議在安裝包自定義項目目錄上新建Install4j項目(Project).Install4j項目的配置開發(fā)、編譯構(gòu)建可以在Install4jIDE集成開發(fā)環(huán)境里開展。同時建立resource目錄用于放置Install4j項目所需的資源文件等。在Install4jIDE集成開發(fā)環(huán)境里需要配置項目安裝策略、自定義組件、安裝文件目錄等信息,其中安裝文件目錄的來源就是已經(jīng)準備打包的可執(zhí)行代碼目錄(通常為EAP包目錄),及其一些安裝時需要的數(shù)據(jù)庫備份資源及數(shù)據(jù)庫初始化腳本等。使用Install4jIDE集成開發(fā)環(huán)境開發(fā)完畢后開始調(diào)試和試運行階段,架構(gòu)采用在Install4jIDE編譯build構(gòu)建安裝包和調(diào)試包目錄(debug_xxxx…目錄),而在Eclipse開發(fā)環(huán)境里進行Debug的方式。需要針對調(diào)試包目錄在Eclipse開發(fā)環(huán)境里配置Run的運行工作目錄配置。(以下以Targsoft20for技改投資項目管理信息系統(tǒng)targsoft_27rail_eap.ear為例說明開發(fā)過程)Eclipse開發(fā)環(huán)境搭建建立新的工作空間(workspace)以后,首先將install4j_EclipseJava項目建立起來,項目結(jié)構(gòu)如下圖:ins[ins廚1i4jruntime:BiJTLESyEtemLibrary[jrockit_j>ikl.6.0]BiRefererLcedLibr:=Lt_ies說serializer.j:=Lt_256 12-5-24下午8:23gum-訂xalan.jar256 12-5-24下牛8:23gom-冷xerceslmpl.j:±f25612_5_24下牛8:23gum-口xml-apis.j:=Lt_256 12-5-24下午忘:23gom-Applej:=lt:=iExtensions.jar256 12~5-24下牛8:23gum-Iorg.eclipse.swt_3.3.2.v3349d.jar256 12_5_24下?!阨org.eclipse,swt.Win32.Win32.x86_3.3.3.v3349.j:=q-25Edeploy,jar256 12-5-24下牛8:23gour其中的i4jruntime源代碼目錄可以用于擴展自定義組件時對引用的Install4jAPI進行參考,也可以對自定義代碼進行深層次的跟蹤調(diào)試。需要注意的是,Install4j開發(fā)分為設(shè)計配置階段和編譯Build后的運行調(diào)試階段,i4jruntime源代碼因為主要第4頁含的是安裝包真正運行調(diào)試時所需的基礎(chǔ)庫類,所以里面基本不含用于設(shè)計配置階段的Eclipse的SWT和JFace的插件類庫(Install4jIDE界面是基于Eclipse插件開發(fā)的,i4jruntime的界面是基于Swing開發(fā)的)?,F(xiàn)在構(gòu)建安裝包的自定義擴展用項目,在Install4j里提供了基本的安裝用界面和一些常用的界面組件和業(yè)務(wù)處理類(Action)。它們支持常用的如歡迎界面、選擇安裝路徑組件、文本編輯框組件、文件/目錄拷貝Action、替換更新文本配置文件Action等常用組件。但是我們的安裝業(yè)務(wù)首先面臨著要處理復(fù)雜的XML配置文件,其次要處理數(shù)據(jù)庫及執(zhí)行數(shù)據(jù)庫腳本等更復(fù)雜的安裝任務(wù),那么以上的基本組件就不夠了,需要通過開發(fā)擴展組件(甚至擴展界面)來達到目的(其實Install4j還可以在事件上編寫輕量級的Java腳本來實現(xiàn)擴展))自定義擴展用項目工程就是為了此目的,另外,這些擴展部份也需要進行調(diào)試,所以可以通過此工程進行對安裝過程的調(diào)試。搭建的工程結(jié)構(gòu)如下:二諭inst:£L14_i_T:=Lt_gso£t20LinEtall4j_Targsoft20」爲srcSi(defaultpackage)JActionContants.java31212-5-29下午5:IdgoiReadXMLAction.java318 12-5-30上牛11:15gonWriteXMLAction.java318 12-5-30上牛11:15g.曲XMLEditorComponent.java316 12-5-30上午10:1:JjXMLEditorComponentBeanlnfo.java316 12-5-30_XmlJTree.java302 12-5-29上牛11:2TgourXmlJTreeTest,java299 12-50上午10:3TgomStcom.jeadaptoflow,common,xml.helperDom4JUtil.java298 12-5-29上牛1口:前gour£F-imagesAsXml.jpg289 12-5-28T^4:52gour函doedit.jpg289 12-5-28 :52goui-JEESystemLibrary[jrockit~jdkl.6.0]SiKeferencedLibr:=Lt_ies囪lib[關(guān)mediaresoiji_i:eimages罔zuotu.jpg283 12_5_28下牛3:3Tgom-messagesTai-gsoft.utfB320 12-5-30上牛11:23gourI如上圖,除常見的src、lib目錄之外,還有media、resources目錄。目的主要是為了整合方便,media是Install4j的標準輸出目錄,未來產(chǎn)生的Debug輸出和最終的安裝包都會在此產(chǎn)生,resources目錄是標準的項目資源文件放置目錄,放置一些資源文件或多語言包文件。Install4j環(huán)境搭建Install4j開發(fā)環(huán)境搭建比較簡單,只需要在IDE新建項目,然后將項目文件存儲在安裝包的自定義擴展用項目根路徑上即可,如下圖(Tagsoft20.ins文件):meEsagesTargsoft.ut£B320TagsoftZO.installAj32412-5-30上牛11:23gour12-5-30下午5:41gourInstall4jIDE開發(fā)下圖是打開主界面的情形(本文檔并不對IDE開發(fā)環(huán)境進行全面的介紹,僅說明必須的操作):必須的操作):最上面是菜單欄,Project菜單主要是用來新建、打開項目文件的,同時還用來管理本IDE的屬性和依賴的JDK等功能。需要說明的是,reopenproject對于外部修改了代碼在本IDE內(nèi)的更新起效是非常有用的。Step菜單是對安裝包制作過程的一個全面的向?qū)?,用戶可以在此直接打開各需要配置內(nèi)容的界面。Build菜單是將項目進
行編譯生成安裝包的菜單。菜單下面是按鈕區(qū),放置了幾個常用按鈕。左部按鈕區(qū)實際上并不是按照構(gòu)建順序排列的,是按照構(gòu)建安裝包所需要的各個方面的配置排列的,以下分別說明:GeneralSettings是安裝包項目整體上需要配置的內(nèi)容方面,它分為幾個Tab頁,在ApplicationInfo里可以配置項目的基本信息,注意這些編輯框右側(cè)的一可以用于填入變量(這里僅能輸入compiler級別的變量)。(變量在IDE里起到動態(tài)賦值,隨時引用的目的,也可以在運行時動態(tài)的被賦值實現(xiàn)編程的效果。變量分為三種類別compiler級別、InstallRuntime級別、il8N級別。compiler級別是指在IDE里指定好或系統(tǒng)本身確定了值的那些變量,可以理解為就是常量和系統(tǒng)環(huán)境變量。InstallRuntime級別是在運行時可以賦值、取值的變量,可以理解為全局變量。il8N級別是指多語言包里定義的字串,就是多語言配置Key值)。其中我們在本例子中在ShortName里填入的是targsoft_27rail_eap.ear的是compiler級別的sys.shortName變量,這可以用于將來產(chǎn)生目的安裝路徑的文件目錄命名中去。JavaVersion是對安裝包使用的JDK進行配置,Minimumversion指您的軟件系統(tǒng)要求的最小JDK版本號。下面AllowJREswithabetaversionnumber是指JDK小版本號可以是有betaversion的。下面的配置內(nèi)容(JRESearchSequence)主要是配置安裝執(zhí)行時如何發(fā)現(xiàn)客戶機的JDK的策略,通過檢查客戶機的JDK安裝包可以給出客戶機是否存在需要的JDK,如果沒有安裝過程可以配置為不能向下進行。Languages是對安裝包的多語言性進行配置的,首先Principallanguage:是指的默認的安裝包使用的語言,Customlocalizationfile是指當您要自定義自己的語言字串時在哪個文件里定義,需要注意的是可以用”./”表示當前路徑,當前路徑就是install項目文件所在的路徑(資源圖片等路徑同理),打開后,是一個配置文件,IlSnkey-messagepairs(kej^meEsaigejonepairperline):1productH^^技改投資項目管理信息系統(tǒng)2埠于氓擇應(yīng)卑喪務(wù)垂界齒selectServer=if選擇朋勢器種類在里面可以用如下:deselect^作出選擇;然后選擇此朋務(wù)器的安裝路徑或域路:在里面可以用如下:方式進行語言串的定義。定義后就可以在配置里進行引用。BeijingTargsoftCo.,LtdMediaFileOptions是對構(gòu)建輸出安裝包的配置,Mediafileoutputdirectory:是指安裝包輸出路徑,Mediafilenamepattern:是指產(chǎn)生的安裝文件命名規(guī)則。最后需要說明的是如果您的路徑使用的是絕對路徑,當在ProjectOption里設(shè)置Makeallpathsrelativewhensavingtheprojectfile后這些配置也會轉(zhuǎn)成相對路徑的。Fil竺是配置安裝的文件/目錄的內(nèi)容的,只要是關(guān)于要安裝拷貝的文件都在此進行配置。這里先看兩個概念:fileset和InstallationComponents。Fileset是指可以將要安裝拷貝的文件進行打包劃分,比如為windows平臺和Apple平臺要安裝拷貝的文件是不同的,所以就將其分為兩個fileset。也可以先定義一個Defaultfileset用于平臺無關(guān)性的文件安裝,然后再定義不同的fileset用于差別的文件。InstallationComponents是可以將對安裝不同的文件組合交給用戶去決定,主要用于讓用戶去決定安裝的種類如:默認的安裝文件組合、全部安裝、僅安裝特定組件等。DefineDistributionTree是定義配置安裝文件內(nèi)容的,點擊護I然后點擊NewRoot可以定義安裝的目的地目錄,因為我們的系統(tǒng)要安裝于用戶選擇的服務(wù)器容器內(nèi)指定的目錄上,所以要采用${installer:Install_Root_Path}這種變量的表述方案,其中Install_Root_Path就是用戶在界面上指定目錄后將目錄存入的變量。配置完成后要添加安裝目錄,點擊護丨然后選擇AddFilesandDirectories打開向?qū)ы撁?選擇Directory然后下一步選擇來源目錄(注意:此來源目錄一定要存在,且要保留到安裝包Build以后,因為構(gòu)建安裝包時文件才真正被打進安裝包),我們的系統(tǒng)的EAP要求使用.eap目錄,所以如上圖所示,將安裝文件打進以sys.shortName命名的目錄中,整個EAP放在Install_Root_Path指定的目錄下。Launchers是指安裝結(jié)束后可以直接啟動何種服務(wù)、系統(tǒng)、進程等,例如在我們的例子中可以直接啟動Jboss等服務(wù)器。Installer是指配置安裝過程中的界面和后臺業(yè)務(wù)操作,通過前三方面的配置IDE系統(tǒng)其實已經(jīng)在此作了一些必要的自動配置內(nèi)容。這里有六個概念:Screen、Action、FormComponents、Application、Group、Link。Screen就是界面,基本上Install4j的安裝過程就是一套順序性的界面流,通過界面的不斷切換來引導(dǎo)實現(xiàn)安裝,每一個界面就是一個Screen。Action是用于在界面后臺進行業(yè)務(wù)操作的功能組件,一般是在一個Screen向下一個Screen進行跳轉(zhuǎn)時執(zhí)行的°FormComponents是放置在Screen上的界面組件,如Label、Texteditor等,可以顯示、編輯、賦值變量或按鈕可以運行程序等。Application是一個應(yīng)用,應(yīng)用是由一系列的Screen或Group組成的,表示一套單獨的安裝過程,比如安裝系統(tǒng)時走 InstallApplication,卸載時走UninstallApplication。升級時走UpdateApplication。也可以增加自定義Custominstallerapplication結(jié)合media制作用于特殊用途的維護型安裝包的制作。Group可以將一系列的Screen或Action進行組合,可以統(tǒng)一管理它們的有效或忽略執(zhí)行。Link用于對Screen或Group的引用,用于復(fù)用組件。需要注意的是InstallRuntime級別的變量范圍是在Application之內(nèi)。[Conf...Startup(1action)角.Welcome(1action)selectapplicationseverA^tiggroupFinishDisplayprogress(1s.ction)configJITOI[Configurableform]con£igDataSonrce[Configurabl...configadaptoflow_corLfiguratio.[Conf...Startup(1action)角.Welcome(1action)selectapplicationseverA^tiggroupFinishDisplayprogress(1s.ction)configJITOI[Configurableform]con£igDataSonrce[Configurabl...configadaptoflow_corLfiguratio...DisplayTargsoftLicense[Confi...Displayprogress(1action)TargsoftLicense[ConfigurableIns(2a.ctions)走1口芻.^詡劃Q冏DmfaultexecutionmodeArguments版本:1.0BeijingTargsoftCo.,Ltd TGRMBXM在Screens&ActionsTab內(nèi)用于可視化、配置化的對安裝過程進行開發(fā),系統(tǒng)默認已經(jīng)有了InstallApplication和UninstallApplication。只需在內(nèi)部擺放Screens和Actions即可,如下圖所示:點擊 可以加入Screen、Action等,需要注意的是Action必須加在Screen下面,系統(tǒng)已經(jīng)預(yù)置了很多Screen和Action。右部的Configuration下的Properties用于配置各種級別組件的屬性等內(nèi)容。在Application級別,右部還有InstallerVariables配置面板可以配置預(yù)定義的InstallRuntime級別的變量。某些屬性可以配置Script腳本,當點擊屬性框右部的_按鈕時可以打開Script腳本編輯界面,Script腳本采用Java語言格式,Script腳本內(nèi)可以使用context上下文句柄,它可以與變量體系進行通訊,這樣可以擴展一些業(yè)務(wù)功能。對于Screen右部還有FormComponents配置面板可以配置界面內(nèi)部的組件(通過點擊ConfiguringFormComponents按鈕),如下圖:第10
BeijingTargsoftCo.,Ltd還可以通過PreviewForm預(yù)覽界面效果。BeijingTargsoftCo.,LtdCustomCode&ResourcesTab內(nèi)用于配置界面編程所需要的自定義代碼目錄、資源目錄,自定義代碼所使用的JarLib目錄等,需要注意的是,自定義代碼目錄一定是自定義代碼工程的Class目錄(即不是src目錄)。而自定義代碼所使用的JarLib目錄必須采用Scandirectory,這樣系統(tǒng)才能訪問到Jar里的類。如下圖所示:CustomCode&Resources:Directory-\buildScstldirectory.\libDirectory-\resoitrceiTewmediafileMedia用于配置創(chuàng)建安裝包的策略,如構(gòu)建多平臺安裝包。點擊 圖標IDE會彈出向?qū)Ы缑嫒?chuàng)建安裝包的策略。本例子中除需注意Installationdirectory—定是前面預(yù)定好的${compiler:sys.shortName}其它都直接采用默認值即可。Build用于編譯全部的配置,并構(gòu)建安裝包,如下圖:第11BeijingTargsoftCo.,Ltd點擊StartBuild即可開始創(chuàng)建安裝包,其中當選擇Createadditionaldebuginstall時,就可以在media目錄下創(chuàng)建debug_xxxx目錄,里面的內(nèi)容就可以支撐用于調(diào)試安裝包的執(zhí)行了。(實際debug_xxxx內(nèi)含的文件就是安裝包自動展開的內(nèi)容)。3.5Eclipse自定義工程針對于擴展組件的開發(fā)在安裝包的自定義擴展用項目里建立自定義擴展組件,可以自定義 Screen、Action、FormComponents。它們分別實現(xiàn)各自的接口和抽象類即可。(具體開發(fā)參見Help文檔)。當開發(fā)完畢后,可以通過Screens&ActionsTab內(nèi)的亦CustomCode或ConfiguringFormComponents里的SearchFormComponentinCustomeCode力口入。需要注意的是,自定義代碼目錄一定是自定義代碼工程的Class目錄且被加入CustomCode&ResourcesTab內(nèi),還要注意當在Eclipse里對代碼進行改動時,需要通過ReopenProject進行刷新才能更新自定義組件。3.6安裝包的調(diào)試點擊StartBuild完成以后,系統(tǒng)會在media目錄下創(chuàng)建debug_xxxx目錄,可以配置Eclipse的RUN來運行調(diào)試它。如下圖所示:第12BeijingTargsoftCo.,Ltd-Dinstall4j.runtimeDir參數(shù)表示運行Install4jBeijingTargsoftCo.,Ltd-Dinstall4j.runtimeDir參數(shù)表示運行Install4j目錄在后面的路徑,要設(shè)置指向mJavaApplicationriJXLcustomCode_i鞏弓tall4iriiTLhello_irLSPT!runT:=Lt-gsi:iftalLUj新建JavaApplication的運行項,然后以com.install4j.runtime.installer.Installer為運行主類表示是運行安裝應(yīng)用(如果是卸載的話用com.install4j.runtime.installer.Uninstaller)。然后在Arguments里配置如下圖:debug_xxxx目錄,這是必須的,表示運行哪個項目工程。下面的Workingdirectiory也要設(shè)到debug_xxxx目錄,因為有些資源要被引用。然后設(shè)定Classpath,如下圖。注意要加上user.jar,這個Jar包存在于debug_xxxx目錄下,是Install4j編譯產(chǎn)生的,它包含了自定義的部份代碼Class和Java腳本的編譯代碼Class。第13£7匯德墩件BeijingTargsoftCo.,LtdCl:=leCl:=lespath:BootstrapEntriesHS4JEESystemLibrary[jrockit_jdkl.6.0]玄■UserEntriesr*user,j:=Lf-\install4j_T:=Lt_gsoft20\rriEjd.i殳:込已匕口譽—七』-呂弓口£t_2Tirai]__€!:ELp_m營inStall4j_Eclipse(defaultclasEpat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 管材工礦合同范本
- 牌匾施工安全合同范本
- 電工合同范本
- 冷庫設(shè)備采購合同范本
- 20xx年情人節(jié):浪漫粉色主題模板
- 團體游泳培訓(xùn)合同范本
- 個人維修合同范本
- 農(nóng)村三變合同范本
- 水暖建材進貨合同范本
- 木工刀具購銷合同范本
- 2025年廣東廣州市高三一模英語試卷試題及答案
- 2025浙江嘉興市桐鄉(xiāng)市部分國有企業(yè)招聘員工41人筆試參考題庫附帶答案詳解
- 2025年中國經(jīng)緯儀行業(yè)市場調(diào)查研究及投資前景展望報告
- 施工現(xiàn)場臨時用電施工方案
- 網(wǎng)絡(luò)安全基本知識試題及答案
- 湖南省常德市2025屆高三下學(xué)期模擬考試(二模)物理試卷(含答案)
- 甘肅省招聘衛(wèi)生健康人才筆試真題2024
- 杭州2025年浙江杭州余杭區(qū)余杭街道招聘編外勞務(wù)派遣人員25人筆試歷年參考題庫附帶答案詳解
- 2024-2025學(xué)年度四川省達州市達川區(qū)銘仁園學(xué)校高一第二學(xué)期3月月考歷史試題(含答案)
- 大規(guī)模住區(qū)的物業(yè)管理創(chuàng)新模式研究
- 第六單元實驗活動3二氧化碳的實驗室制取與性質(zhì)教學(xué)設(shè)計-2024-2025學(xué)年九年級化學(xué)人教版上冊
評論
0/150
提交評論