欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
在 Eclipse 中利用 Maven
Maven 將作為一個(gè)普通的構建系統,被人們重新認識,并且它將超越 Java™ 技術(shù)。本文不打算成為一篇 Maven 教程,而是將 Maven 與其他技術(shù)進(jìn)行比較,讓您洞察 Maven 與 Eclipse 相適應的地方,以及如何使這些工具相互協(xié)作。

在過(guò)去幾年中,Maven 已經(jīng)不僅僅是 Java 世界的一個(gè)時(shí)髦話(huà)題。自 2001 年起,Maven 已經(jīng)成為構建工具領(lǐng)域的先驅。最近幾年,人們常拿它與 Ant 比較。因為 Maven 與 Ant 有一些顯而易見(jiàn)的相似之處,所以拿它們倆作比較似乎是很自然的事。比如說(shuō),在兩種情況下,XML 腳本都是可用的;兩種工具都可以生產(chǎn)工件;它們還可以共享相同的分類(lèi)法和概念,比如 項目(project)、目標(target)目標(goal),以及 依賴(lài)關(guān)系(depends)先決條件(prereqs)。但它們實(shí)質(zhì)上有很大的差別。Ant 只是一個(gè) XML 腳本工具,而 Maven 是一個(gè)普通的構建工具,它關(guān)注的重點(diǎn)是一個(gè)叫做項目對象模型(POM)的概念。POM 暴露的是粗粒度的、面向構建的任務(wù),這些任務(wù)被稱(chēng)為目標,它們提供了一些準則,幫助您開(kāi)發(fā)構建方法和實(shí)現最佳實(shí)踐。

在某些方面,Maven 屬于軟件工廠(chǎng) 工具家族(參閱 參考資料),盡管目前它仍在外圍。更確切地說(shuō),諸如 Maven 之類(lèi)的構建工具是軟件工廠(chǎng)領(lǐng)域中必不可少的。

軟件工廠(chǎng)

通過(guò)顯著(zhù)提高自動(dòng)開(kāi)發(fā)的級別,軟件工廠(chǎng)提供了一個(gè)花費更少、更靈活的應用程序開(kāi)發(fā)方法。根據 Software Factories Web 站點(diǎn)的說(shuō)法,“軟件工廠(chǎng)是一個(gè)軟件產(chǎn)品線(xiàn),它根據構建特殊種類(lèi)的應用程序的方法,配置一些可擴展的開(kāi)發(fā)工具……提供打包的內容……以及指導”(參閱 參考資料)。軟件工廠(chǎng)涉及三個(gè)主要概念:

  • 模式,提供了一些元數據,描述組成應用程序的不同工件的結構,以及它們是如何交互的。
  • 一個(gè)或多個(gè)模板,提供了啟動(dòng)程序工具箱,以及構建應用程序所需的其他任何東西。
  • 可擴展的開(kāi)發(fā)環(huán)境,用于配置、定制和裝配組件。

如今,這類(lèi)工具已經(jīng)逐漸引起了認識到它們的價(jià)值的那些工具制造人員、工具開(kāi)發(fā)人員和軟件編輯的注意。這些工具促進(jìn)了軟件開(kāi)發(fā)過(guò)程的工業(yè)化,降低了投入市場(chǎng)的成本和時(shí)間,同時(shí)還提高了生產(chǎn)率,加快了對進(jìn)化需求的反應。

仔細查看一下 Maven 的主要特性,您就會(huì )認識到 Maven 與軟件工廠(chǎng)之間的相似之處:Maven 使用 POM 作為元數據來(lái)描述項目結構,并通過(guò)通用應用程序插件來(lái)獲得可擴展的項目模板。因為 Maven 非常靈活并且是開(kāi)放源碼的,所以很容易推斷和設想 Maven 是軟件工廠(chǎng)平臺中的一個(gè)核心組件。但是,還有另一種說(shuō)法。上述類(lèi)比并不完全,因為目前的 Maven 缺乏專(zhuān)用的開(kāi)發(fā)環(huán)境,而這類(lèi)環(huán)境有助于創(chuàng )建特定于域或特定于企業(yè)的插件和模板,并允許您輕松地配置項目或定制行為。

不過(guò),Maven 的主要目標是標準化構建過(guò)程,并保證代碼構建-測試-部署(CBTD)循環(huán)中的質(zhì)量和易再現性(easy reproducibility)。它還可以制定度量標準,幫助您了解開(kāi)發(fā)狀態(tài)。CBTD 本體論在軟件工程領(lǐng)域已經(jīng)不再新鮮,但 Maven 可以使您標準化這種本體論,并通過(guò)抽象這種理論,將它想像成一個(gè)完整的實(shí)體??紤]到不斷增長(cháng)的項目的復雜性,標準化成為一種迫切需要。擴建 的概念,我們稱(chēng)之為元構建,因為其無(wú)可估量的價(jià)值以及保證下一級質(zhì)量的特性,正逐漸被人們認識。持續集成(continuous integration)就是建立在這個(gè)概念的基礎之上,但它也應用了在 IDE 上下文之外的地方進(jìn)行構建的能力。





回頁(yè)首


模糊的界限

使用過(guò) Java 技術(shù)的人應該都聽(tīng)說(shuō)過(guò) Eclipse。2001 年年中的時(shí)候,Eclipse 推出了它的第一個(gè)版本,標志其成熟的是它為集成開(kāi)發(fā)環(huán)境(IDE)提供了一個(gè)機會(huì ),特別是為 Java 開(kāi)發(fā)人員(不嚴謹地說(shuō))提供了一個(gè)機會(huì )。Eclipse 是一種開(kāi)放的、以語(yǔ)言為中心的平臺,也可以將它用作教育性項目和研究項目的基礎平臺,其中一些平臺捐贈給了 Eclipse 團體( 請參閱 參考資料)。就像 Microsoft® 已經(jīng)采用軟件工廠(chǎng)方法一樣,Eclipse 也開(kāi)始轉向模型驅動(dòng)開(kāi)發(fā)(MDD)方向,并且最近已經(jīng)公布了一個(gè)新的項目提議 —— 模型驅動(dòng)的開(kāi)發(fā)集成(MDDi)。根據該提議,“Eclipse MDDi 項目專(zhuān)用于平臺的實(shí)現……其設計目標是支持各種建模語(yǔ)言(統一建模語(yǔ)言或特定于域的語(yǔ)言)和模型驅動(dòng)的技術(shù)。”

漸漸地,一些工具開(kāi)始假定某些特性可以完全并且順利地集成在一起,Maven 和 Eclipse(即使作為一個(gè)簡(jiǎn)單的 IDE)也不例外。因此,從構建的角度來(lái)看,二者似乎出現了重疊,如圖 1 所示。


圖 1. 擴建的概念

圖 1 描述的實(shí)際上是以前討論的擴建概念。正如以前定義的那樣,整個(gè)擴建過(guò)程包括幾個(gè)任務(wù),同時(shí)還表示了一個(gè)元構建實(shí)例。任務(wù)可以是以下兩種類(lèi)型之一:原子任務(wù)是細粒度的,并且是上下文不明確的,這種任務(wù)的兩個(gè)實(shí)例幾乎是相同的;宏觀(guān)任務(wù)是復合任務(wù),它充當微觀(guān)任務(wù)的容器。

構建,從擴展的意義上說(shuō),只處理宏觀(guān)任務(wù);原子任務(wù)的觸發(fā)取決于配置。這意味著(zhù)用戶(hù)對系統有著(zhù)較高層次的看法,這使得系統更易于維護和發(fā)展。

此外,Maven 和 Eclipse 都是開(kāi)放的,并且很容易通過(guò)插件擴展它們,使其滿(mǎn)足您的需要。但是,因為它們針對的受眾不同,所以它們之間的相似性也到此為止:多數 Eclipse 最終用戶(hù)是一些開(kāi)發(fā)人員;而 Maven 主要針對的是一些構建管理人員。盡管如此,Maven 仍然是一個(gè)命令行工具。雖然圖形用戶(hù)界面(GUI)是按照 Jason Van Zyl(Maven 的制造者和架構師)指示的方向開(kāi)發(fā)的,但 Maven 目前仍然沒(méi)有幫助用戶(hù)執行特殊任務(wù)的特定 GUI,比如創(chuàng )建或更新配置,或者只用一個(gè)鼠標單擊發(fā)起構建。

上面描述的典型構建順序在 Eclipse 中不像在 Maven 中那么順利。Eclipse 的特性之一是開(kāi)發(fā) 環(huán)境造成構建過(guò)程不連續,這要歸因于一些人為因素:并不是每次成功編譯之后都進(jìn)行測試、所有測試沒(méi)必要一次運行、可以跳過(guò)一些微觀(guān)任務(wù),等等。各種因素都會(huì )導致產(chǎn)生差異,這就是為什么開(kāi)發(fā)人員每天至少必須運行一次完整的構建過(guò)程,以確信他們沒(méi)有破壞什么的原因。

不過(guò),因為 Eclipse 是一個(gè)可擴展平臺,所以它受到許多用戶(hù)社區的支持,這使它成為駐留 Maven 驅動(dòng)的開(kāi)發(fā)、允許開(kāi)發(fā)人員和構建管理人員以某種簡(jiǎn)單的方式進(jìn)行協(xié)作的理想之地。





回頁(yè)首


將 Maven 集成到 Eclipse 中

Mevenide 是 Codehaus 主辦的一個(gè)項目,旨在通過(guò)將 Maven 集成到 IDE 中,簡(jiǎn)化 Maven 的使用(參閱 參考資料)?,F在,Borland Software 的 JBuilder、NetBeans 和 Eclipse 都受到支持。其他一些項目也部分地將 Maven 集成到 Eclipse 中,這樣,就可以與 Mevenide(如 Maven Workshop)共享一些特性。除了增加 Maven 的易用性之外,為什么需要這種插件?

通過(guò)提供一些工具和視圖,讓您了解 Maven 隱藏的復雜性并改進(jìn)團隊環(huán)境中的協(xié)作,Mevenide for Eclipse 提高了生產(chǎn)率。從協(xié)作的角度來(lái)看,假如構建已經(jīng)被 Maven 化了,那么最有用的特性就是 Eclipse 項目元數據與 Maven 元數據之間的雙向同步。如果開(kāi)發(fā)人員忘記在向 Eclipse 中添加一個(gè)依賴(lài)關(guān)系之后更新 POM,那么該怎么辦?如果重構無(wú)法傳播到 Maven,該怎么辦?構建可能會(huì )中斷,或者一些單元測試可能被拒絕,因此,真的需要使 Eclipse 元數據和 Maven 元數據保持同步。Mevenide 監聽(tīng)元數據的變化,并使您能夠很容易地確定元數據不匹配的地方,這可以防止進(jìn)行被嚴重破壞的構建。

但 POM 并不只是關(guān)于依賴(lài)關(guān)系和項目布局的。它還包含一些不用于結構上的項目管理信息,比如版本號、名稱(chēng)、ID 和源儲存庫的位置。Eclipse 元數據并不總是反映所有這些信息。因此,需要另一個(gè)編輯這些信息的方法。為此,Mevenide 提供了一個(gè)圖形編輯器,該編輯器使 POM 的維護變得更容易,并允許您避開(kāi)一些煩瑣的、容易出錯的原始 XML 手工編輯。每個(gè) POM 語(yǔ)義部分都被表示為一個(gè)編輯器頁(yè),這增強了模型的整體可靠性。此外,為了最大限度地減少創(chuàng )建 POM 的無(wú)聊過(guò)程,Mevenide 提供了一個(gè)相當簡(jiǎn)單的、可擴展的 POM 模板機制。

阻止 Maven 在 Eclipse 之外的地方運行的能力是從類(lèi)似 Mevenide 的插件中最容易獲得的一項功能。您可以選擇某些執行任務(wù)(用 Maven 的術(shù)語(yǔ)來(lái)講是 目標),這些任務(wù)可以是通過(guò) Maven 插件全局定義的任務(wù),也可以是依賴(lài)于項目的任務(wù),或者,您可以通過(guò)定義構建敏感的變量來(lái)定制構建。Eclipse 控制臺上只顯示了一些相關(guān)的選項(即在 IDE 的上下文中相關(guān)),對于其他任何插件,控制臺上只輸出構建日志。這一特性非常重要,因為它避免了在控制臺與 Eclipse 之間不停地來(lái)回奔波。

Mevenide 還集成了其他許多幫助方法特性,但它們不是很重要。例如,您可以定義給定目標與文件模式之間的關(guān)系,這樣,就可以根據工作空間增加的增量來(lái)激活那些任務(wù)。您還可以瀏覽工件儲存庫,或者根據名稱(chēng)搜索某個(gè)給定的工件(一個(gè)工件 就是一個(gè)構建結果,它可以是 JAR 文件、可執行文件或者是一個(gè)完整的 Web 站點(diǎn))。然后,可以重定向到 Mevenide 站點(diǎn),獲得完整的特性列表。

不過(guò),仍然還有一個(gè)問(wèn)題:即使 Mevenide 增強了生產(chǎn)率和易用性,但您仍然必須認識到哪些工具可以在特殊環(huán)境中滿(mǎn)足您的需要。通過(guò) Maven Console 運行 Maven 會(huì )話(huà)可能非常耗時(shí),所以,為了獲得較高的生產(chǎn)率,在對會(huì )話(huà)進(jìn)行編碼期間,應該改為使用 JUnit 集成的 Eclipse 支持來(lái)運行測試,并依賴(lài)于 Eclipse 的內部編譯器來(lái)生成可執行的文件。但在向源代碼儲存庫提交任何東西之前,應該確保 POM 是同步的,并回滾所有不需要的 .classpath 或 .project 修改 —— 也就是說(shuō),假設這些文件都是在源代碼控制之下,這可能是有爭議的。這個(gè)話(huà)題在 Martin Van den Bemt 的 blog 中討論過(guò)(參閱 參考資料)。





回頁(yè)首


結束語(yǔ)

盡管 Maven 和 Eclipse 具有不同的特性,但從構建的角度看,它們在某些地方可能出現重疊。它們之間存在的對立似乎也相當多,但我們很容易克服這些,通過(guò)努力最終使它們相互協(xié)作,共創(chuàng )一片沃土。諸如 Mevenide 之類(lèi)的工具可以使 Maven 和 Eclipse 順利合作,并使它們保持同步,但您必須認識到,在某一個(gè)給定的開(kāi)發(fā)階段,哪種工具最能滿(mǎn)足您的需要。

盡管 Maven 作為質(zhì)量保證過(guò)程中的一個(gè)重要因素,正逐漸被人們所認可,但在將它集成到開(kāi)發(fā)環(huán)境(尤其是 Eclipse)中,使 Maven 成為一等 IDE 公民這一點(diǎn)上,還有待提高。到那時(shí),我們就可以考慮其他的 Maven 用例,比如說(shuō),更進(jìn)一步地將它集成到全局開(kāi)發(fā)過(guò)程中,以及像 Eclipse 這樣的可擴展環(huán)境如何幫助實(shí)現這些集成。

本系列的下一部分將更詳細地查看 Mevenide 的能力,以及如何使用該工具實(shí)現最佳實(shí)踐,并從 Maven 和 Eclipse 中獲得最大好處。





回頁(yè)首


參考資料





回頁(yè)首


關(guān)于作者

Gilles Dodinet 曾做過(guò)幾年的 Java 2 Platform, Enterprise Edition(J2EE)工程師。自 2004 年起,他成為了 KarmicSoft 的一名研發(fā)顧問(wèn),從事 .NET 組件裝配工具方面的研究。他是一名經(jīng)驗豐富的 Eclipse 開(kāi)發(fā)人員,并且參與開(kāi)發(fā)了 Mevenide。Gilles Dodinet 非常感謝 Michel Zam 和 Milos Kleint 對本文的審查。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
maven、nexus、m2eclipse
我的Maven之旅(4)-Maven與IDE(eclipse,idea)的集成
在eclipse3.3上進(jìn)行OSGI基礎平臺環(huán)境的搭建
maven
Eclipse3.7 低版本 安裝Maven插件Maven Integration for Eclipse
POM文件org.apache.maven.archiver.MavenArchiver.getManifest錯誤
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久