国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
第 2 周(共 12 周):管理 J2EE 項(xiàng)目

掌握并精通
作者:Julien Dubois

作為項(xiàng)目經(jīng)理,選擇項(xiàng)目管理工具和慣例是您要做的最重要決策

從頭開始一個(gè)新的 J2EE 項(xiàng)目既充滿刺激又富有挑戰(zhàn)。您在項(xiàng)目之初所做的決策將對(duì)整個(gè)項(xiàng)目過程產(chǎn)生巨大影響。因此,良好的項(xiàng)目管理習(xí)慣通常從一開始就可確保項(xiàng)目的成功。

如果您在管理 J2EE 項(xiàng)目,那么您至少要堅(jiān)定、明確地回答六個(gè)關(guān)鍵的項(xiàng)目管理問題:

  • “應(yīng)當(dāng)使用哪種構(gòu)建工具?”
  • “如何使一組人在一個(gè)共享代碼庫(kù)上協(xié)同工作?”
  • “如何讓自己以及團(tuán)隊(duì)成員了解項(xiàng)目的狀態(tài)?”
  • “如何使構(gòu)建過程簡(jiǎn)化為一次單擊操作?”
  • “如何簡(jiǎn)化多個(gè)項(xiàng)目的管理?”
  • “如何管理 J2EE 軟件的存檔?”

在本文中,我將指出您(作為項(xiàng)目主管)為了回答這些問題并使項(xiàng)目成功可以采取的一些措施(使用 Oracle JDeveloper 支持的開放源代碼項(xiàng)目管理工具)。我還將提供一個(gè)簡(jiǎn)短的教程,以使您能夠使用 Maven 來(lái)開始項(xiàng)目和代碼管理,以創(chuàng)建一個(gè)可供使用的基于 Strut 的項(xiàng)目。

在一篇文章中面面俱到地介紹所有這些主題非常困難,但我希望能夠足夠詳細(xì)地介紹一些較重要的主題來(lái)幫助您入門。

做出選擇

構(gòu)建過程是任何 J2EE 項(xiàng)目的關(guān)鍵部分,有許多構(gòu)建工具可供選擇。 對(duì)本文而言,我們的討論將圍繞最流行的兩種 J2EE 構(gòu)建工具:Maven 和 Ant。

MavenAnt 是由 Apache Software Foundation 提供的開放源代碼項(xiàng)目,在它們之間進(jìn)行選擇是項(xiàng)目主管要做的最重要的決策之一。Maven 旨在幫助開發(fā)人員以一致的方式輕松構(gòu)建、測(cè)試 Java 項(xiàng)目以及為 Java 項(xiàng)目編制文檔。它是一種強(qiáng)大的工具,有助于在整個(gè)項(xiàng)目周期內(nèi)對(duì)項(xiàng)目進(jìn)行管理。

Ant 是 Java 領(lǐng)域最流行的構(gòu)建工具。它是一種非常靈活的工具;不過,這種靈活性付出了代價(jià)的。許多企業(yè)項(xiàng)目深受龐大的 Ant 腳本之苦,在構(gòu)建者離開團(tuán)隊(duì)之后很難管理這些腳本。

為了幫助您在這些工具之間做出選擇,下面提供了一些高級(jí)比較:

 AntMaven
安裝非常容易非常容易(與 Ant 非常相似)
啟動(dòng)新項(xiàng)目的時(shí)間5 分鐘15 分鐘
添加新功能的時(shí)間添加一個(gè)新目標(biāo)需 10 分鐘使用一個(gè)新目標(biāo)需 2 分鐘
新開發(fā)人員學(xué)習(xí)所需的時(shí)間30 分鐘。非常易于理解,非常好的工具支持。2 小時(shí)。開始時(shí)可能讓人困惑。
標(biāo)準(zhǔn)布局無(wú)(好處是您有很大的靈活性)。有(好處是所有項(xiàng)目具有相同的外觀)。
多項(xiàng)目支持有,但您必須創(chuàng)建自己的主構(gòu)建文件。有,由 Maven Reactor 實(shí)現(xiàn)
文檔生成執(zhí)行這一操作沒有標(biāo)準(zhǔn)方法,但有大量工具可供使用。
IDE 集成非?;A(chǔ)

如果您明白自己的目標(biāo)并想絕對(duì)控制構(gòu)建機(jī)制,那我建議您選擇 Ant。但是,如果您不確定您的項(xiàng)目結(jié)構(gòu)并在構(gòu)建系統(tǒng)方面經(jīng)驗(yàn)不足,那就選擇 Maven。Maven 將為您提供良好的項(xiàng)目布局以及優(yōu)秀的工具,在整個(gè)項(xiàng)目周期內(nèi)為您提供幫助。

通過學(xué)習(xí)本文和使用 Maven,您將接觸到一套很好的工具、很好的軟件過程和很好的項(xiàng)目布局。不過,如果您希望轉(zhuǎn)至 Ant,那么將您使用的 Maven 目標(biāo)重寫為 Ant 目標(biāo)將非常容易。對(duì)于簡(jiǎn)單的構(gòu)建,從 Maven 轉(zhuǎn)換為 Ant 只需幾個(gè)小時(shí),因此可以放心大膽地在項(xiàng)目的后續(xù)階段中繼續(xù)使用 Maven。

團(tuán)隊(duì)協(xié)作

我們?yōu)榭蛻舳颂峁┑闹饕钱a(chǎn)品品質(zhì)的代碼。為了達(dá)到這個(gè)目標(biāo),整個(gè)團(tuán)隊(duì)一起協(xié)作至關(guān)重要,并且有大量的源代碼配置管理 (SCM) 工具可用來(lái)實(shí)現(xiàn)這個(gè)目標(biāo)。

例如,開放源代碼的并發(fā)版本控制系統(tǒng) (CVS) 可能是最流行的 SCM 軟件。它默認(rèn)安裝在許多 Unix/Linux 系統(tǒng)上,并且有一個(gè)非常好的 Windows 版本,名為 CVSNT。

“在 IDE 和 SCM 工具之間切換容易出錯(cuò)且費(fèi)時(shí)?!?/span>
當(dāng)啟動(dòng)項(xiàng)目時(shí),請(qǐng)確保:

  • 您的 IDE 與 SCM 系統(tǒng)協(xié)調(diào)工作。在 IDE 和 SCM 工具之間切換容易出錯(cuò)且費(fèi)時(shí),特別是在您管理成千上萬(wàn)的源文件時(shí)。(Oracle JDeveloper 完全支持 CVS 并提供單一工作窗口;因此您可以避免工具間的切換。)
  • 您了解 SCM 軟件的基本原則,例如標(biāo)記和分支。
  • 您的源代碼信息庫(kù)留有備份并易于訪問。如果代碼同步太慢,開發(fā)人員是不會(huì)使用它的。
  • 您已教會(huì)開發(fā)人員如何使用該系統(tǒng)。
  • 您已指示您的開發(fā)人員經(jīng)常同步代碼。
Maven 項(xiàng)目信息庫(kù)Maven 的原則是僅將源文件存儲(chǔ)在 SCM 系統(tǒng)中,而將庫(kù)(例如 struts.jar、log4j.jar 等)存儲(chǔ)在 Maven 信息庫(kù)(一個(gè)遠(yuǎn)程目錄,其中的文件按項(xiàng)目和版本存儲(chǔ))中。這項(xiàng)任務(wù)最初似乎有些麻煩,但管理項(xiàng)目的許多依賴關(guān)系是一項(xiàng)令人畏懼的任務(wù),而 Maven 用一種非常優(yōu)雅的方式解決了它。

因?yàn)楸疚膶W⒂谄髽I(yè)項(xiàng)目,因此您可能想創(chuàng)建您自己的 Maven 信息庫(kù)。我強(qiáng)烈推薦使用 Maven 代理,它將透過您的企業(yè)防火墻連接到互聯(lián)網(wǎng)上的全球 Maven 信息庫(kù)。當(dāng)您創(chuàng)建了您自己的企業(yè)信息庫(kù)時(shí),您可以輕松地在其中存儲(chǔ)自己的 JAR 文件。(目錄布局很清楚,它只是模擬了 Maven Proxy 創(chuàng)建的結(jié)構(gòu)而已。)

Maven 還提供了一個(gè)稱為 StatCVS 的插件,它生成項(xiàng)目的 CVS 信息庫(kù)的一個(gè)完整報(bào)表,其中包括許多顯示開發(fā)人員活動(dòng)的圖形。

Maven 項(xiàng)目對(duì)象模型 (POM) Maven 使用項(xiàng)目對(duì)象模型 (POM) 來(lái)存儲(chǔ)項(xiàng)目的信息。該信息包括項(xiàng)目的名稱、描述、開發(fā)人員、SCM 系統(tǒng)等。POM 是一個(gè)簡(jiǎn)單的 XML 文件,其詳細(xì)信息請(qǐng)見 http://maven.apache.org/reference/project-descriptor.html。

因?yàn)?POM 是一個(gè) XML 文件,所以您可以用 Oracle JDeveloper 對(duì)其進(jìn)行編輯。不過,我們稍后將使用的 Maven JDeveloper 插件將從當(dāng)前項(xiàng)目中刪除 project.xml 文件 — 這不是多大的問題,因?yàn)槟梢钥焖俚貙⑵渲匦聦?dǎo)入。

從項(xiàng)目中獲得反饋

管理 J2EE 項(xiàng)目時(shí)另一個(gè)重要考量就是,您需要了解項(xiàng)目的狀態(tài)。但是,您沒有時(shí)間去驗(yàn)證您的團(tuán)隊(duì)所開發(fā)或簽入的每個(gè)文件。

解決方法是與您的團(tuán)隊(duì)進(jìn)行溝通和使用適當(dāng)?shù)膱?bào)告工具。

當(dāng)然,首要的還是經(jīng)常與開發(fā)人員溝通。不過,反饋不一定總要面對(duì)面地進(jìn)行。有大量自動(dòng)報(bào)告工具可供使用,如 CruiseControl、JUnit、Checkstyle 或 StatCVS,這些工具能夠使您了解項(xiàng)目的當(dāng)前狀態(tài)。就本文而言,討論持續(xù)集成和 CruiseControl 的價(jià)值將非常有幫助。

結(jié)合使用 CruiseControl 和 Maven持續(xù)集成是 Martin Fowler 首先采用的一種最佳實(shí)踐,它可以歸納為“定期自動(dòng)構(gòu)建和測(cè)試項(xiàng)目是一個(gè)不錯(cuò)的主意”。這個(gè)概念已被全球的公司所認(rèn)可。

持續(xù)集成在幾個(gè)人在同一項(xiàng)目上一起工作時(shí)特別有用,因?yàn)樗麄儗⒍ㄆ诘玫阶钚碌捻?xiàng)目狀態(tài)并將收到來(lái)自 CruiseControl 以電子郵件發(fā)送的錯(cuò)誤通知。

CruiseControl 是最受歡迎的持續(xù)集成工具,我衷心推薦它。CruiseControl 完全能夠處理 Maven 管理的項(xiàng)目。Maven 還為配置 CruiseControl 提供了一個(gè)插件。該插件可以輕松地創(chuàng)建 CruiseControl 配置文件,并且還可以用來(lái)管理 CruiseControl 的運(yùn)行。

另一個(gè)有用的 Maven 插件 Checkstyle 將幫助您的項(xiàng)目遵循編碼標(biāo)準(zhǔn)。可以將 Checkstyle 報(bào)告包含在 CruiseControl 中,以使任何提交非標(biāo)準(zhǔn)代碼的人都將中斷構(gòu)建。要將這些報(bào)告添加到您的項(xiàng)目文檔中,只需將它們添加到您的 project.xml 文件的 <reports/> 部分中。

管理一次單擊構(gòu)建/部署周期

構(gòu)建和部署應(yīng)用程序可能花費(fèi)幾個(gè)小時(shí),并且可能需要幾個(gè)手動(dòng)步驟。開發(fā)人員厭煩了漫長(zhǎng)的構(gòu)建周期時(shí)間和手動(dòng)干預(yù)。一天要用幾個(gè)小時(shí)來(lái)等待應(yīng)用程序進(jìn)行構(gòu)建和部署。這些延遲帶來(lái)的失落感無(wú)以言表。

解決辦法是建立一個(gè)“一次單擊構(gòu)建和部署周期”過程。當(dāng)正確使用時(shí),構(gòu)建工具(如 Maven 或 Ant)將構(gòu)建過程轉(zhuǎn)換成在開發(fā)人員的 IDE 中的一次單擊。這些工具還可以自動(dòng)將項(xiàng)目部署到您選擇的應(yīng)用服務(wù)器上。

該解決方案有一個(gè)附加的好處:它不僅使開發(fā)人員的任務(wù)變得更輕松,而且一旦定義了一個(gè)簡(jiǎn)潔的過程來(lái)打包應(yīng)用程序,提交給客戶端的軟件就將有更高的質(zhì)量(不再有遺忘的文件或未編譯的 JSP)。

就本文而言,您的一次單擊部署周期還將生成相應(yīng)的項(xiàng)目文檔,這將非常有幫助。Maven 以其生成的項(xiàng)目文檔而著稱。只需使用 maven site:generate 目標(biāo)即可創(chuàng)建當(dāng)前項(xiàng)目的文檔。生成的 web 站點(diǎn)看起來(lái)有點(diǎn)類似下面顯示的屏幕截圖:

開發(fā)多個(gè)項(xiàng)目

隨著項(xiàng)目復(fù)雜度的增加,很有可能將項(xiàng)目分成幾個(gè)較小的項(xiàng)目。結(jié)果是:項(xiàng)目管理時(shí)間成倍增加。每個(gè)小項(xiàng)目都需要管理。

解決方案是對(duì)不同項(xiàng)目使用一致的構(gòu)建機(jī)制,并創(chuàng)建一個(gè)“主項(xiàng)目”來(lái)包含這些較小的項(xiàng)目。雖然用 Maven 可以很容易實(shí)現(xiàn)這一點(diǎn)(因?yàn)樗鼜?qiáng)制您采用其項(xiàng)目布局),但對(duì)于 Ant 開發(fā)人員來(lái)說,就需要某種形式的規(guī)范了。對(duì)于 Ant,有兩個(gè)建議:

  • 使用命名慣例(“compile”用于編譯項(xiàng)目,“dist”用于創(chuàng)建發(fā)布版本)
  • 使用由 Ant 1.6 提供的新的 <import/> 任務(wù):創(chuàng)建一個(gè)將在每一個(gè)子項(xiàng)目中導(dǎo)入的通用 Ant 腳本。(這看起來(lái)很像 GoF 的“模板方法”設(shè)計(jì)模式。)

另一個(gè)更復(fù)雜的問題是需要以給定的順序來(lái)構(gòu)建這些項(xiàng)目,并且一個(gè)項(xiàng)目的失敗將觸發(fā)其附屬的子項(xiàng)目的失敗。讓我們舉個(gè)例子,其中您將使用:

  • 一個(gè)稱為 myutility.jar 的實(shí)用程序類庫(kù)
  • 許多 EJB,打包在一個(gè)稱為 myejbs.jar 的 jar 文件中,并且它們使用 myutility.jar 的類
  • 一個(gè) web 存檔(稱為 myweb.war),它使用 myejb.jar 和 myutility.jar
  • 一個(gè)打包了前面提到的 3 個(gè)資料庫(kù)的 EAR 文件(稱為 myear.ear)。

在這種情況下,myutility.jar 的構(gòu)建過程中的失敗將觸發(fā)所有項(xiàng)目的失敗。而 myweb.war 的失敗將只觸發(fā)最后的 myear.ear 的失敗。

管理這種項(xiàng)目相依性可以用手動(dòng)方式(如果只有少數(shù)幾個(gè)項(xiàng)目)也可以用自動(dòng)方式(使用 Maven Reactor)。

打包 J2EE 項(xiàng)目

在許多 J2EE 項(xiàng)目中需要?jiǎng)?chuàng)建存檔文件 — 如 WAR、JAR 或 EAR — 用于提交給客戶端。

如果您按照以前的問題的解決方案來(lái)進(jìn)行操作,那么您將遇到兩個(gè)相當(dāng)迥異的挑戰(zhàn):

  • 創(chuàng)建 EAR 很復(fù)雜,尤其是當(dāng)涉及多個(gè)項(xiàng)目時(shí)。一個(gè) EAR 只是一個(gè)包含幾個(gè) WAR 和 JAR 的項(xiàng)目。
  • 用 Maven 或 Ant 來(lái)創(chuàng)建 WAR 和 JAR 非常容易,但您如何管理各種部署描述符?

這是 IDE(如 Oracle JDeveloper)能夠派上用場(chǎng)的地方。然而,如果您不希望依賴于 IDE,那么可以從 Ant 和 Maven 內(nèi)部運(yùn)行 XDoclet(一個(gè)代碼生成工具)來(lái)生成前面提到的部署描述符。

我現(xiàn)在為您提供一個(gè)簡(jiǎn)短的教程來(lái)使您能夠開始使用 Maven 和 Oracle JDeveloper。在構(gòu)建過程中獲得快樂!

管理代碼教程

現(xiàn)在,我們開始使用 Maven 并創(chuàng)建一個(gè)可供使用的基于 Strut 的項(xiàng)目。

啟動(dòng)項(xiàng)目

Maven 可以從 http://maven.apache.org/ 上下載。安裝非常簡(jiǎn)單,并且在 http://maven.apache.org/start/install.html 上提供了全面的文檔。

Maven 自帶大量的插件,這些插件將自動(dòng)通過互聯(lián)網(wǎng)進(jìn)行安裝。(請(qǐng)參見“Maven 項(xiàng)目信息庫(kù)”部分。)

Maven genapp 插件

Maven genapp 插件將幫助快速啟動(dòng)基于 Struts 的應(yīng)用程序。運(yùn)行 maven genapp 并使用“struts”項(xiàng)目模板,如以下屏幕截圖所示:

您現(xiàn)在就擁有了一個(gè)能夠?qū)嶋H應(yīng)用的基于 Struts 的 web 應(yīng)用程序。要?jiǎng)?chuàng)建項(xiàng)目的 WAR 文件,只需輸入“maven war”。該項(xiàng)目有一個(gè)簡(jiǎn)單的 POM (project.xml) 文件,您可以根據(jù)需要來(lái)編輯它。

Maven JDeveloper 插件使用 Maven JDeveloper 插件將項(xiàng)目導(dǎo)入 Oracle JDeveloper 中。正如插件的文檔中所說明的那樣,需要設(shè)置一些屬性:

  • 在您的主目錄中創(chuàng)建“build.properties”文件。
  • 設(shè)置文檔所需的屬性。

    例如,下面是我自己的 build.properties 的屏幕截圖:

    您可以任意多次地運(yùn)行“maven jdeveloper”目標(biāo);它將從 Maven 的 project.xml 文件中更新您的 Oracle JDeveloper 配置。

    例如,它將自動(dòng)配置 JDeveloper 的庫(kù)。

    在 JDeveloper 內(nèi)部運(yùn)行 Maven從 Oracle JDeveloper 內(nèi)部運(yùn)行 Maven 以使運(yùn)行 Maven 不需要啟動(dòng)新的控制臺(tái)窗口,這可能非常有用。下面的屏幕截圖說明了 Oracle JDeveloper 中的一個(gè)新按鈕的“maven dist”目標(biāo)的配置。您將通過選擇 Tools 菜單的 External Tools 然后選擇 Add 來(lái)開始這個(gè)過程。

    第 1 步(共 4 步):選擇 Maven 可執(zhí)行文件(選擇“dist”目標(biāo))

    第 2 步(共 4 步):選擇如何顯示 Maven 快捷方式

    第 3 步(共 4 步):指定該快捷方式將出現(xiàn)在 JDeveloper 中的位置

    第 4 步(共 4 步):選擇該快捷方式何時(shí)將可用

    您現(xiàn)在即可從 Oracle JDeveloper 內(nèi)部運(yùn)行 Maven 了,如以下屏幕截圖所示:

    Maven 控制臺(tái)如果您對(duì)使用控制臺(tái)的偏愛僅次于 Oracle JDeveloper,那么我強(qiáng)烈推薦您使用 Maven 控制臺(tái)插件。它將一次性啟動(dòng) Maven,并將等待指令。結(jié)果,運(yùn)行目標(biāo)要快得多(與 Ant 相比)了。

    總結(jié)

    創(chuàng)建新的 J2EE 項(xiàng)目是一次非常豐富的體驗(yàn)。需要掌握整個(gè)構(gòu)建周期(從管理源代碼文件到部署打包的應(yīng)用程序)。幸運(yùn)地是,有一套豐富的工具可以幫助項(xiàng)目經(jīng)理取得成功。

    Maven 是一個(gè)強(qiáng)大的構(gòu)建工具,可以與 Oracle JDeveloper 很好地集成。它的設(shè)置相當(dāng)簡(jiǎn)單,并且得益于它預(yù)先配置的插件,Maven 將提供比同等解決方案(如 Ant)更大的時(shí)間收益。對(duì)于經(jīng)驗(yàn)較少的開發(fā)人員和團(tuán)隊(duì)主管,Maven 的額外好處是鼓勵(lì)他們遵循大量的最佳實(shí)踐。最后一點(diǎn)但相當(dāng)重要,使用 Maven 保證了全面的項(xiàng)目文檔持續(xù)可用性,這正是眾多企業(yè)項(xiàng)目所缺乏的。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux 寶庫(kù) - 圖解JDeveloper10g快速開發(fā)會(huì)話EJB(上)
敏捷方法中的開源工具
如何在maven工程中加載oracle驅(qū)動(dòng)
maven安裝oracle jdbc驅(qū)動(dòng)
Maven 2.0:編譯、測(cè)試、部署、運(yùn)行
Maven中文手冊(cè)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服