因為三年的學習中,随着自己學習Java的深入,也越來越理不清自己的應用的依賴關系。比如起初
因為一個StringUtil而導入的Apache的commens擴充包。
還有玩資料庫時導入的MySQL驅動包随後還有oracle的驅動包
然後玩JavaWeb從Tomcat中拿了個servlet的包
然後是我學習最漫長的一段時間中,從spring,springMVC,mybatis,随後的hibernate,Struts2,無數的包就不列出了。
随後又玩大資料和雲計算,玩起了hadoop,hdfs,yarn,MapReduce,導入的包很多很複雜,不過幸好eclipse的插件幫我完成了這個導入的過程。
玩大資料的過程中做反向索引又去引入的分詞包analyze。
随後的項目過程中用到将資料導出到外部excel中,用到了Apache的POI。
...
随着學習的深入,每次建構一個項目都需要去思考依賴關系,而且往往會在做項目的過程中或者調試的過程中因為導入的包不足而報錯。
其實之前早就淺淺接觸過maven和GitHub,但是因為當時自己的項目規模完全還沒到需要系統管理的程度,是以暫時擱置在一邊。但是随着這些煩惱的更新,我決定撿起maven去解決目前的困擾。
本文不對maven的具體知識進行細節展開,既是本人對近期maven學習的總結也是對maven的總體介紹。适合不知道maven是什麼但是希望總體了解它的人閱讀,不适合作為學習文檔。
Maven是Apache旗下的頂級項目之一。主要用于項目的管理,現在許多大項目都采用maven來管理團隊的項目。Maven可以解決項目開始時導入依賴的困擾,而且能自動生成項目測試報告等等高效工作。
如果你的項目需要一些外部依賴的jar包隻需要在pom中顯示導入’倉庫’中中包即可,是以整個項目隻需要統一維護一個pom檔案即可。
pom檔案解析:
倉庫的概念:maven項目在build的過程中首先會檢查項目中pom定義的依賴關系,然後會去倉庫中提取需要的依賴,如果沒有則從全球中央倉庫中下載下傳。
maven的項目目錄結構:
src
main
java
test
main的java目錄用于存放源代碼,test的java目錄用于存放測試代碼。
Maven開發的幾個重要過程解讀:
clean compile test package install
1.compile
編譯這個項目。第一次編譯根據XML檢查依賴,并建構(build)項目。如果本地倉庫和世界倉庫都找不到依賴的jar包則報錯。依賴解決完畢後會對main中的java和test目錄下的.java檔案進行編譯,然後輸出到與src同目錄的一個target目錄的classes下。
2.test
運作test中編譯出的那些測試檔案,進行測試後生成測試日志,日志也輸出到target下。
3.clean
删除target
4.package
打包這個項目到一個jar包中
5.install
将本子產品儲存到本地倉庫中
writeBy --------------------------------------------------------------------------------2018-4-11