亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java深入:在Eclipse中如何利用Maven

2019-11-18 13:00:56
字體:
來源:轉載
供稿:網友

  Maven 將作為一個普通的構建系統,被人們重新熟悉,并且它將超越 java技術。本文不打算成為一篇 Maven 教程,而是將 Maven 與其他技術進行比較,讓您洞察 Maven 與 Eclipse 相適應的地方,以及如何使這些工具相互協作。
  
  在過去幾年中,Maven 已經不僅僅是 Java 世界的一個時髦話題。自 2001 年起,Maven 已經成為構建工具領域的先驅。最近幾年,人們常拿它與 Ant 比較。因為 Maven 與 Ant 有一些顯而易見的相似之處,所以拿它們倆作比較似乎是很自然的事。
  
  比如說,在兩種情況下,xml 腳本都是可用的;兩種工具都可以生產工件;它們還可以共享相同的分類法和概念,比如 項目(PRoject)、目標(target)與 目標(goal),以及 依靠關系(depends) 和 先決條件(prereqs)。但它們實質上有很大的差別。
  
  Ant 只是一個 XML 腳本工具,而 Maven 是一個普通的構建工具,它關注的重點是一個叫做項目對象模型(POM)的概念。POM 暴露的是粗粒度的、面向構建的任務,這些任務被稱為目標,它們提供了一些準則,幫助您開發構建方法和實現最佳實踐。
  
  在某些方面,Maven 屬于軟件工廠盡管目前它仍在外圍。更確切地說,諸如 Maven 之類的構建工具是軟件工廠領域中必不可少的。
  
  軟件工廠
  
  通過顯著提高自動開發的級別,軟件工廠提供了一個花費更少、更靈活的應用程序開發方法。根據 Software Factories Web 站點的說法,“軟件工廠是一個軟件產品線,它根據構建非凡種類的應用程序的方法,配置一些可擴展的開發工具……提供打包的內容……以及指導”。
  
  軟件工廠涉及三個主要概念:
  
  模式,提供了一些元數據,描述組成應用程序的不同工件的結構,以及它們是如何交互的。 一個或多個模板,提供了啟動程序工具箱,以及構建應用程序所需的其他任何東西。 可擴展的開發環境,用于配置、定制和裝配組件。
  
  如今,這類工具已經逐漸引起了熟悉到它們的價值的那些工具制造人員、工具開發人員和軟件編輯的注重。這些工具促進了軟件開發過程的工業化,降低了投入市場的成本和時間,同時還提高了生產率,加快了對進化需求的反應。
  
  仔細查看一下 Maven 的主要特性,您就會熟悉到 Maven 與軟件工廠之間的相似之處:Maven 使用 POM 作為元數據來描述項目結構,并通過通用應用程序插件來獲得可擴展的項目模板。
  
  因為 Maven 非常靈活并且是開放源碼的,所以很輕易推斷和設想 Maven 是軟件工廠平臺中的一個核心組件。但是,還有另一種說法。上述類比并不完全,因為目前的 Maven 缺乏專用的開發環境,而這類環境有助于創建特定于域或特定于企業的插件和模板,并答應您輕松地配置項目或定制行為。
  
  不過,Maven 的主要目標是標準化構建過程,并保證代碼構建-測試-部署(CBTD)循環中的質量和易再現性(easy reprodUCibility)。它還可以制定度量標準,幫助您了解開發狀態。
  
  CBTD 本體論在軟件工程領域已經不再新鮮,但 Maven 可以使您標準化這種本體論,并通過抽象這種理論,將它想像成一個完整的實體??紤]到不斷增長的項目的復雜性,標準化成為一種迫切需要。
  
  擴建的概念,我們稱之為元構建,因為其無可估量的價值以及保證下一級質量的特性,正逐漸被人們熟悉。持續集成(continuous integration)就是建立在這個概念的基礎之上,但它也應用了在 IDE 上下文之外的地方進行構建的能力。
  
  模糊的界限
  
  使用過 Java 技術的人應該都聽說過 Eclipse。2001 年年中的時候,Eclipse 推出了它的第一個版本,標志其成熟的是它為集成開發環境(IDE)提供了一個機會,非凡是為 Java 開發人員(不嚴謹地說)提供了一個機會。
  
  Eclipse 是一種開放的、以語言為中心的平臺,也可以將它用作教育性項目和研究項目的基礎平臺,其中一些平臺捐贈給了 Eclipse 團體。
  
  就像 Microsoft已經采用軟件工廠方法一樣,Eclipse 也開始轉向模型驅動開發(MDD)方向,并且最近已經公布了一個新的項目提議 —— 模型驅動的開發集成(MDDi)。
  
  根據該提議,“Eclipse MDDi 項目專用于平臺的實現……其設計目標是支持各種建模語言(統一建模語言或特定于域的語言)和模型驅動的技術。”
  
  漸漸地,一些工具開始假定某些特性可以完全并且順利地集成在一起,Maven 和 Eclipse(即使作為一個簡單的 IDE)也不例外。因此,從構建的角度來看,二者似乎出現了重疊,如圖 1 所示。
  
Java深入:在Eclipse中如何利用Maven

  
圖 1. 擴建的概念

  
  圖1描述的實際上是以前討論的擴建概念。正如以前定義的那樣,整個擴建過程包括幾個任務,同時還表示了一個元構建實例。任務可以是以下兩種類型之一:原子任務是細粒度的,并且是上下文不明確的,這種任務的兩個實例幾乎是相同的;宏觀任務是復合任務,它充當微觀任務的容器。
  
  構建,從擴展的意義上說,只處理宏觀任務;原子任務的觸發取決于配置。這意味著用戶對系統有著較高層次的看法,這使得系統更易于維護和發展。
  
  此外,Maven 和 Eclipse 都是開放的,并且很輕易通過插件擴展它們,使其滿足您的需要。但是,因為它們針對的受眾不同,所以它們之間的相似性也到此為止:多數 Eclipse 最終用戶是一些開發人員;而 Maven 主要針對的是一些構建治理人員。
  
  盡管如此,Maven 仍然是一個命令行工具。雖然圖形用戶界面(GUI)是按照 Jason Van Zyl(Maven 的制造者和架構師)指示的方向開發的,但 Maven 目前仍然沒有幫助用戶執行非凡任務的特定 GUI,比如創建或更新配置,或者只用一個鼠標單擊發起構建。
  
  上面描述的典型構建順序在 Eclipse 中不像在 Maven 中那么順利。Eclipse 的特性之一是開發 環境造成構建過程不連續,這要歸因于一些人為因素:并不是每次成功編譯之后都進行測試、所有測試沒必要一次運行、可以跳過一些微觀任務,等等。
  
  各種因素都會導致產生差異,這就是為什么開發人員天天至少必須運行一次完整的構建過程,以確信他們沒有破壞什么的原因。
  
  不過,因為 Eclipse 是一個可擴展平臺,所以它受到許多用戶社區的支持,這使它成為駐留 Maven 驅動的開發、答應開發人員和構建治理人員以某種簡單的方式進行協作的理想之地。
  
  將 Maven 集成到 Eclipse 中 Mevenide 是 Codehaus 主辦的一個項目,旨在通過將 Maven 集成到 IDE 中,簡化 Maven 的使用。
  
  現在,Borland Software 的 JBuilder、NetBeans 和 Eclipse 都受到支持。其他一些項目也部分地將 Maven 集成到 Eclipse 中,這樣,就可以與 Mevenide(如 Maven Workshop)共享一些特性。除了增加 Maven 的易用性之外,為什么需要這種插件?
  
  通過提供一些工具和視圖,讓您了解 Maven 隱藏的復雜性并改進團隊環境中的協作,Mevenide for Eclipse 提高了生產率。
  
  從協作的角度來看,假如構建已經被 Maven 化了,那么最有用的特性就是 Eclipse 項目元數據與 Maven 元數據之間的雙向同步。假如開發人員忘記在向 Eclipse 中添加一個依靠關系之后更新 POM,那么該怎么辦?
  
  假如重構無法傳播到 Maven,該怎么辦?構建可能會中斷,或者一些單元測試可能被拒絕,因此,真的需要使 Eclipse 元數據和 Maven 元數據保持同步。Mevenide 監聽元數據的變化,并使您能夠很輕易地確定元數據不匹配的地方,這可以防止進行被嚴重破壞的構建。
  
  但 POM 并不只是關于依靠關系和項目布局的。它還包含一些不用于結構上的項目治理信息,比如版本號、名稱、ID 和源儲存庫的位置。Eclipse 元數據并不總是反映所有這些信息。
  
  因此,需要另一個編輯這些信息的方法。為此,Mevenide 提供了一個圖形編輯器,該編輯器使 POM 的維護變得更輕易,并答應您避開一些煩瑣的、輕易出錯的原始 XML 手工編輯。每個 POM 語義部分都被表示為一個編輯器頁,這增強了模型的整體可靠性。
  
  此外,為了最大限度地減少創建 POM 的無聊過程,Mevenide 提供了一個相當簡單的、可擴展的 POM 模板機制。
  
  阻止 Maven 在 Eclipse 之外的地方運行的能力是從類似 Mevenide 的插件中最輕易獲得的一項功能。您可以選擇某些執行任務(用 Maven 的術語來講是 目標),這些任務可以是通過 Maven 插件全局定義的任務,也可以是依靠于項目的任務,或者,您可以通過定義構建敏感的變量來定制構建。
  
  Eclipse 控制臺上只顯示了一些相關的選項(即在 IDE 的上下文中相關),對于其他任何插件,控制臺上只輸出構建日志。這一特性非常重要,因為它避免了在控制臺與 Eclipse 之間不停地往返奔波。
  
  Mevenide 還集成了其他許多幫助方法特性,但它們不是很重要。例如,您可以定義給定目標與文件模式之間的關系,這樣,就可以根據工作空間增加的增量來激活那些任務。
  
  您還可以瀏覽工件儲存庫,或者根據名稱搜索某個給定的工件(一個工件 就是一個構建結果,它可以是 JAR 文件、可執行文件或者是一個完整的 Web 站點)。然后,可以重定向到 Mevenide 站點,獲得完整的特性列表。
  
  不過,仍然還有一個問題:即使 Mevenide 增強了生產率和易用性,但您仍然必須熟悉到哪些工具可以在非凡環境中滿足您的需要。通過 Maven Console 運行 Maven 會話可能非常耗時,所以,為了獲得較高的生產率,在對會話進行編碼期間,應該改為使用 JUnit 集成的 Eclipse 支持來運行測試,并依靠于 Eclipse 的內部編譯器來生成可執行的文件。
  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线看日韩av| 国产成人av在线| 亚洲人成在线电影| 亚洲成人黄色在线| 欧美另类极品videosbestfree| 国产精品视频自拍| 7777精品久久久久久| 日韩精品黄色网| 亚洲国产精品人人爽夜夜爽| 亚洲高清福利视频| 欧美第一页在线| 最近中文字幕日韩精品| 国产精品老女人视频| 国产精品久久久久一区二区| 91精品久久久久久久久| 亚洲乱码av中文一区二区| 狠狠色狠狠色综合日日小说| 中文字幕一区电影| 亚洲自拍偷拍网址| 欧洲s码亚洲m码精品一区| 92国产精品久久久久首页| 亚洲91精品在线观看| 国产精品99久久久久久久久久久久| 亚洲精品av在线播放| 国产欧美在线播放| 国产亚洲一区二区在线| 精品久久久久久| 国产精品一区=区| 欧美激情一区二区三区在线视频观看| 欧美激情一区二区久久久| 一本大道久久加勒比香蕉| 亚洲成色777777在线观看影院| 日韩视频在线免费观看| 日韩一区二区三区xxxx| 亚洲一区二区三区久久| 国产精品成久久久久三级| 日本19禁啪啪免费观看www| 91免费看视频.| 欧美精品在线观看| 日本中文字幕成人| 最新国产精品亚洲| 这里精品视频免费| 国产一区二区在线免费| 国产精品久久久久久av福利| 中文字幕亚洲图片| 亚洲天堂成人在线| 岛国av一区二区在线在线观看| 国产精品久久久久久久电影| 国产中文日韩欧美| 日韩综合视频在线观看| 亚洲变态欧美另类捆绑| 国产视频亚洲视频| 成人羞羞国产免费| 亚洲人成啪啪网站| 亚洲国产精品99久久| 久久久久久久999精品视频| 91在线观看免费高清完整版在线观看| 成人福利网站在线观看| 91精品在线观看视频| 欧美性猛交xxxx免费看| 亚洲久久久久久久久久久| 精品国产一区二区三区久久久| 中文字幕亚洲综合| 国产精品久久久久久久电影| 久久精品国亚洲| 97欧美精品一区二区三区| 国产精品电影网| 国产亚洲精品美女久久久久| 色婷婷**av毛片一区| 91精品国产91久久久久久不卡| 国产视频久久久| 黑人欧美xxxx| 超碰97人人做人人爱少妇| 欧美专区日韩视频| 奇米影视亚洲狠狠色| 久久亚洲精品中文字幕冲田杏梨| 国内精品久久久久久| 精品国产一区二区三区久久久狼| 亚洲国产精品99| 91久久精品在线| 色婷婷久久av| 亚洲大胆美女视频| 欧美综合在线观看| 日韩成人黄色av| 久久亚洲精品视频| 97在线看福利| 狠狠色香婷婷久久亚洲精品| 91青草视频久久| 欧美视频裸体精品| 国产亚洲成精品久久| www.亚洲一区| 91在线观看欧美日韩| 自拍偷拍亚洲一区| 日韩大陆欧美高清视频区| 日韩在线视频观看正片免费网站| 久久资源免费视频| 久久久精品视频在线观看| 欧美色另类天堂2015| 亚洲欧洲第一视频| 午夜精品蜜臀一区二区三区免费| 国产做受高潮69| 国产视频精品一区二区三区| 精品美女永久免费视频| 久久亚洲精品成人| 久久99精品国产99久久6尤物| 91久久精品国产91久久性色| 中文.日本.精品| 亚洲欧洲第一视频| 日韩av电影免费观看高清| 97欧美精品一区二区三区| 韩国一区二区电影| 欧美猛男性生活免费| 91视频国产一区| 国产欧美中文字幕| 国产精品福利在线观看| 欧美专区福利在线| 久久精品视频免费播放| 成人在线国产精品| 91精品国产综合久久香蕉| 97**国产露脸精品国产| 亚洲精品日韩久久久| 欧美午夜丰满在线18影院| 亚洲欧美激情精品一区二区| 国产精品普通话| 欧美国产日韩视频| 韩日精品中文字幕| 亚洲欧美日韩中文在线制服| 在线观看久久久久久| 精品国产一区二区三区久久| 日韩精品亚洲元码| 奇米成人av国产一区二区三区| 福利一区视频在线观看| 欧美高清激情视频| 日韩亚洲综合在线| 亚洲成年人在线| 国产精品丝袜久久久久久高清| 欧美日韩免费在线| 国产精品免费一区二区三区都可以| 日韩av电影手机在线| 久久99精品国产99久久6尤物| 国产精品久久久久久av福利软件| 51色欧美片视频在线观看| 色综合久久久888| 国产精品欧美一区二区三区奶水| 美日韩精品免费观看视频| 九九热99久久久国产盗摄| 91亚洲国产成人久久精品网站| www国产91| 精品久久久久久久大神国产| 92看片淫黄大片欧美看国产片| 欧美日韩精品在线播放| 亚洲一区二区三区在线免费观看| 亚洲精品一区二区三区不| 久久成人人人人精品欧| 亚洲精品自拍偷拍| 亚洲精品国产品国语在线| 中文字幕国产精品| 亚洲男人av在线| 国产97在线|日韩| 九九综合九九综合| 亚洲影视九九影院在线观看| 久久久久久久久久亚洲| 中文字幕欧美日韩在线| 国产精品网址在线|