WebLogic專案部署之一編譯MedRec 專案

liypsky發表於2010-12-08

編譯整個 MedRec 專案

前面的教程說明了如何編譯、生成和部署各個 MedRec 應用程式的組成部分。在本教程中,使用專案級別 build.xml 檔案編譯和生成整個 MedRec 應用程式套件。編譯整個應用程式套件對於在系統上部署所有元件以及驗證 MedRec 是否正在執行且可用是必要的。

本教程包括:

* 前提條件
* 過程
* 最佳實踐
* 重點
* 相關內容

[@more@]前提條件

按照教程 5:建立 MedRec 專案目錄中的說明建立專案目錄。


過程

專案目錄包含一個 build.xml 主指令碼,該指令碼以正確的順序編譯和暫存所有 MedRec 應用程式。要執行此指令碼,請執行下列操作:

1. 開啟命令外殼並設定開發環境:

prompt> c:beauser_projectsdomainsMedRecDomainbinsetDomainEnv.cmd

2. 移至 MedRec 專案目錄的 src 子目錄:

prompt> cd c:medrec_tutorialsrc

3. 使用 Ant 命令執行具有 deploy.dev 目標的 build.xml 主指令碼:

prompt> ant deploy.dev

生成過程顯示指明每個應用程式進度的訊息。整個生成過程大約需要 2 到 5 分鐘才能完成,具體取決於計算機的速度。指令碼完成後應該顯示以下資訊:

build:
[echo] #### E N D M E D R E C ####

BUILD SUCCESSFUL
Total time: 2 minutes 22 seconds


最佳實踐

* 並非所有專案都需要主生成指令碼。如果只是建立單個企業應用程式或企業應用程式的單個元件,則使用 WebLogic Ant 任務的單個 build.xml 檔案就已足夠。
* 如果專案需要按特定順序編譯多個企業應用程式(因為共享的實用工具類或 Web Service 依賴關係),則可以使用 build.xml 源級主檔案在每個應用程式的 build.xml 檔案之間迭代。


重點

MedRec 應用程式套件有許多需要在生成過程中協調的依賴關係。當您執行主生成檔案時,將發生以下事件:

1. 使用 wlcompile 任務編譯 startBrowserEar 和 initEar 的內容。
2. 使用 javac 任務編譯 security 目錄的內容。
3. 編譯 common 的內容。common 目錄包含不同的 MedRec 應用程式所用的幾種物件的 Java 原始碼。
* 實用工具類 - 在整個應用程式套件、異常、工廠和 ServiceLocator 類中使用的常量。MedRec 應用程式套件 Web 層中的 Servlet 使用 ServiceLocator 查詢 Enterprise JavaBean 等一般服務。
* 值物件 - 表示在 MedRec 套件的層之間傳遞的資料的類。
* 操作類 - Struts 框架用來控制 MedRec 套件 Web 層中頁面流的類。
* JavaBean - 在 Web 層中使用的元件 Bean。
4. 編譯 medrecEar 企業應用程式。儘管 medrecEar 使用拆分開發目錄結構並在生成指令碼中使用 WebLogic Ant 任務,應用程式還是有幾個內部依賴關係硬編碼在它的 build.xml 指令碼中,對 wlcompile 使用 include 和 exclude 選項。
5. 編譯 physicianEar 應用程式。該應用程式中的 Web Service 客戶端呼叫 physicianEar 和 medrecEar 應用程式的 Web Service,這些客戶端從先前由 jwsc Web Service Ant 任務生成到 build 目錄的 .wsdl 檔案生成。
6. 編譯位於 clients 目錄的 MedRec 應用程式套件客戶端應用程式。

build.xml 主檔案的 deploy.dev 目標採用附加步驟為每個應用程式(initEar、medrecEar 等等)打包 build 目錄的內容,並且在 dist 目錄中為每個應用程式建立展開的目錄。這些展開的目錄可以用標準方法部署到 WebLogic Server,在拆分開發目錄框架之外。此套件中接下來的教程(教程 14:打包 MedRec 進行分發和教程 15:使用 WLST 和管理控制檯部署 MedRec 包進行生產)將對此進行深入的探討。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/678020/viewspace-1042782/,如需轉載,請註明出處,否則將追究法律責任。

相關文章