成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

我們一起走進Maven——知己知彼

開發 架構
乍一看,Maven看起來有很多東西,但簡而言之,Maven試圖將模式應用于項目的構建基礎架構,以便通過提供使用最佳實踐的明確路徑來提高理解力和生產力。

 [[317524]]

1. 什么是Maven?

乍一看,Maven看起來有很多東西,但簡而言之,Maven試圖將模式應用于項目的構建基礎架構,以便通過提供使用最佳實踐的明確路徑來提高理解力和生產力。Maven本質上是一個項目管理和理解工具,因此提供了一種幫助管理的方法:

  • 構建
  • 文檔
  • 報告
  • 依賴
  • 供應鏈管理系統
  • 發布
  • 分配

2.Maven的哲學

Maven通常被許多人認為是構建工具。很多來到Maven的人最初都熟悉Ant,所以它是一個自然的聯想,但Maven不僅僅是一個構建工具,而不僅僅是Ant的替代品。Maven與Ant完全不同。Ant只是一個工具箱,而Maven則是關于模式的應用,以實現顯示可見性,可重用性,可維護性和可理解性的基礎結構。

如果沒有這些特征,多個人將很有可能在項目上一起高效地工作。沒有可見性,個人不太可能知道另一個人已經完成了什么,因此很有可能有用的代碼不會被重用。如果不重用代碼,則很難創建可維護的系統。當每個人都在不斷努力尋找構成項目的所有這些不同點點的地方時,任何人都很難理解整個項目。因此,您最終會遇到孤島效應,共享知識的衰退以及團隊成員之間相應程度的挫折感。當流程對每個人都不以相同的方式工作時,這是一種自然的影響。

Maven誕生于非常實際的愿望,即以相同的方式在Apache工作。因此,開發人員可以在這些項目之間自由移動,通過了解其中一個項目的工作方式,清楚地了解它們的工作原理。

如果開發人員花時間了解一個項目是如何構建它的,那么當他們轉移到下一個項目時,他們就不必再次經歷這個過程。同樣的想法擴展到測試,生成文檔,生成指標和報告,測試和部署。所有項目都具有足夠的相同特征,了解Maven試圖利用其一般的項目管理方法。在很高的層面上,所有項目都需要構建,測試,打包,記錄和部署。當然,上述每個步驟都有無限的變化,但是這種變化仍然發生在明確定義的路徑的范圍內,而Maven試圖以明確的方式向每個人呈現這條路徑。明確路徑的最簡單方法是為人們提供一組模式,這些模式可以由項目中的任何人共享。

拉爾夫·約翰遜和唐·羅伯茨在“進化框架模式”中最喜歡的一句話:

人們通過從具體例子中概括出來來發展抽象。在沒有實際開發運行系統的情況下,每次嘗試在紙上確定正確的抽象都是注定要失敗的。沒有人那么聰明。框架是一種可重用的設計,因此您可以通過查看它應該是設計的東西來開發它。您看到的示例越多,您的框架就越通用。

我真的不知道最終的結果是什么樣的,我只知道必須有更好的方法。但首先我知道我想:

  • 項目的模型,以便您可以在一個地方查找與項目相關的所有內容
  • 一個標準的目錄結構,所以你不必去尋找圖書館,資源和文檔

3、舉例理解

其實上面的都是官方語言,對我這種理解能力不強的人其實舉例子更合適:

假如你正在Eclipse下開發兩個Java項目,姑且把它們稱為A、B,其中A項目中的一些功能依賴于B項目中的某些類,那么如何維系這種依賴關系的呢?

很簡單,這不就是跟我們之前寫程序時一樣嗎,需要用哪個項目中的哪些類,也就是用別人寫好了的功能代碼,導入jar包即可。所以這里也如此,可以將B項目打成jar包,然后在A項目的Library下導入B的jar文件,這樣,A項目就可以調用B項目中的某些類了。

這樣做有幾種缺陷,如果在開發過程中,發現B中的bug,則必須將B項目修改好,并重新將B打包并對A項目進行重編譯操作,在完成A項目的開發后,為了保證A的正常運行,就需要依賴B(就像在使用某個jar包時必須依賴另外一個jar一樣),兩種解決方案,第一種,選擇將B打包入A中,第二種,將B也發布出去,等別人需要用A時,告訴開發者,想要用A就必須在導入Bjar包。兩個都很麻煩,前者可能造成資源的浪費(比如,開發者可能正在開發依賴B的其它項目,B已經存儲到本地了,在導入A的jar包的話,就有了兩個B的jar),后者是我們常遇到的,找各種jar包,非常麻煩(有了maven就不一樣了)

我們開發一個項目,或者做一個小demo,比如用SSH框架,那么我們就必須將SSH框架所用的幾十個依賴的jar包依次找出來并手動導入,超級繁瑣。

上面兩個問題的描述,其實都屬于項目與項目之間依賴的問題[A項目使用SSH的所有jar,就說A項目依賴SSH],人為手動的去解決,很繁瑣,也不方便,所以使用maven來幫我們管理

Maven的核心功能便是合理敘述項目間的依賴關系,通俗點講,就是通過pom.xml文件的配置獲取jar包,而不用手動去添加jar包,而這里pom.xml文件對于學了一點maven的人來說,就有些熟悉了,怎么通過pom.xml的配置就可以獲取到jar包呢?pom.xml配置文件從何而來?等等類似問題我們需要搞清楚,如果需要使用pom.xml來獲取jar包,那么首先該項目就必須為maven項目,maven項目可以這樣去想,就是在java項目和web項目的上面包裹了一層maven,本質上java項目還是java項目,web項目還是web項目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通過pom.xml添加jar包)。

所以,根據上一段的描述,我們最終的目的就是學會如何在pom.xml中配置獲取到我們想要的jar包,在此之前我們就必須了解如何創建maven項目,maven項目的結構是怎樣,與普通java,web項目的區別在哪里,還有如何配置pom.xml獲取到對應的jar包等等

pom.xml獲取junit的jar包的編寫

 

 

 

 

為什么通過groupId、artifactId、version三個屬性就能定位一個jar包?

加入上面的pom.xml文件屬于A項目,那么A項目肯定是一個maven項目,通過上面這三個屬性能夠找到junit對應版本的jar包,那么junit項目肯定也是一個maven項目,junit的maven項目中的pom.xml文件就會有三個標識符,比如像下圖這樣,然后別的maven項目就能通過這三個屬性來找到junit項目的jar包了。所以,在每個創建的maven項目時都會要求寫上這三個屬性值的。

 

 

 

 

看完上面這些再看看我繪制的圖,估計能理解個八九不離十:

 

責任編輯:武曉燕 來源: 泰斗賢若如
相關推薦

2022-10-18 07:33:57

Maven構建工具

2021-07-26 14:45:45

人工智能臺風氣候

2011-03-23 10:36:55

2011-04-20 10:02:00

2011-10-18 09:50:03

2009-04-22 10:03:58

2010-03-19 15:04:12

2014-10-27 09:05:22

2011-06-02 11:01:32

2015-06-08 22:39:37

云鴿

2012-07-20 09:40:38

2015-06-02 17:32:36

2021-04-30 18:21:44

云計算云計算產業云應用

2015-09-24 14:40:33

2024-02-28 08:41:51

Maven沖突版本

2010-09-10 13:02:11

2014-04-30 12:40:52

安全工具掃描網絡發現工具

2019-03-21 19:43:30

盛邦安全資產治理

2022-03-31 18:59:43

數據庫InnoDBMySQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费看黄色小视频 | 国产乱码一区 | 日韩精品| 色爱综合 | 精品久久精品 | a黄视频| 97久久久久久久久 | 日本电影韩国电影免费观看 | 国产精品揄拍一区二区 | 欧洲一级黄 | 成人超碰 | 一区二区视频在线 | 成人不卡视频 | 成人国产精品久久久 | 欧美二区在线 | 国产小视频在线 | 久久蜜桃av一区二区天堂 | 99精品亚洲国产精品久久不卡 | 久草精品视频 | 国外成人免费视频 | 国产一区二区三区免费视频 | 日韩欧美国产精品一区二区三区 | 激情一区 | 欧美成人h版在线观看 | 欧美日韩亚洲国产综合 | 99久久婷婷国产综合精品电影 | 一级全黄少妇性色生活免费看 | av手机免费在线观看 | 国产在线一区二区三区 | 国产高清免费 | 国产精品久久久久无码av | 国产成人在线免费 | 波多野结衣精品在线 | 精品二| 日韩在线高清 | 欧美日韩亚洲一区 | 欧美一区二区在线观看 | 又爽又黄axxx片免费观看 | 天天射影院| 色狠狠一区 | 免费黄色在线观看 |