1. 程式人生 > >使用Maven的一些小建議,希望你能喜歡

使用Maven的一些小建議,希望你能喜歡

搭建私有倉庫

Maven的倉庫是用來存放Maven工程依賴的包的(通常為jar和pom,war包也可以依賴,在一些很複雜的專案中才能用到)。倉庫分為三種:中央倉庫、第三方倉庫、本地倉庫。

中央倉庫

由Maven官方提供,地址:http://repo1.maven.org/,包含了幾乎所有開源專案的包,但沒有非開源專案的包,如:sun的私有包,Oracle的驅動包等。在使用上也有一些限制: 第一,Maven的官方倉庫的伺服器在國外,在國內訪問非常慢,經常因為網路超時導致無法下載; 第二,Maven管方倉庫有使用頻率限制,如果大的團隊頻繁從官方倉庫下載包,會導致IP被封,從而所有人都無法使用; 第三,私有包不適合傳到Maven官方倉庫; 第四,組織對外網訪問的限制,有些公司是不允許隨便連線外網。

第三方倉庫

由第三方公司搭建,如:http://repository.jboss.com/maven2/、http://repository.sonatype.org/content/groups/public/,公用的“第三方倉庫”同樣存在“中央倉庫”的問題,可能沒有IP限制;另一種私有的第三方庫只在組織內部使用,通常使用nexus搭建,沒有中央倉庫和第三方公用倉庫的限制,可以愉悅的釋出私有包,更重要的下載速度快、穩定。 強烈建議每個使用Maven的組織都搭建自己的私有倉庫

本地倉庫

本地倉庫相當於“中央倉庫”或“第三方倉庫”在執行Maven的電腦上的一個快取,當然只快取了用過的包,預設在${user.home}/.m2目錄下,由於“本地倉庫”通常比較大,初始化比較慢,第一次使用時最好從其他人的電腦上覆制一份,這樣可以大大節省初始化的時間。建議在${MAVEN_HOME}/config/setting.xml中重新指定“本地倉庫”的目錄,防止快取過大影響電腦的正常執行,這一點在持續整合伺服器上尤其重要。

統一的setting配置

團隊成員使用統一的setting.xml檔案,在setting.xml中設定使用的倉庫、禁用官方倉庫等全域性設定,非常不建議在專案的pom中做指定倉庫這樣的設定,這樣做的原因主要是因為一個公司只應有一個私有倉庫,這樣即節省資源,也利於專案的重用和管理。

建立的頂級POM

每一個產品都應該有一個頂級的pom模組兒,在此模組兒中對使用的包、外掛、釋出用的倉庫和一些其他專案級的配置進行設定,其他模組兒都是pom的子模組兒。這樣的好處是整個產品的所有模組兒使用的包是一樣的,能有效的避免各個模組兒單獨配置帶來的版本衝突問題。

合理的引數列表

執行mvn命令時常用的引數有,-B -e -U -pl -D -P,這些引數是Maven自身的,在命令列、持續整合環境都適用。

-B

使Maven在批處理模式下執行,避免需要人工參與互動而造成掛起,在持續整合等不希望人工參與的環境很有用。

-e

在執行maven出現異常時列印完整的異常棧,對問題的分析很有幫助

-U

強制Maven檢查所有快照版(snapshot)依賴的更新,預設情況下Maven每天檢查快照版(snapshot)依賴的是否更新,在實際開發中快照版的更新頻率遠高於這個頻率,-U引數能保證每一次執行都是基於最新狀態的,在持續整合環境這一點尤其重要。

-D

設定maven執行時的系統變數,和Java的-D引數類似,如:maven.repo.local、maven.test.skip

-P

指定構建使用的環境變數,通常每個專案(尤其是web專案)會在不同的環境下執行,如:開發環境、測試環境、生產環境等,不同的環境的配置是不完全相同的,使用Maven的profiefs可以方便的構建出適合不同執行環境的包,執行時使用的環境變數由-P引數指定。

-pl

在一個專案有多個模組兒,而又不想同時構建所有模組兒時,通過-pl引數指定要構建的模組兒,個人覺得這個引數用的場景不多,在模組兒很多的情況下,更應該從模組兒的上進行拆分,減少模組兒間的依賴。 綜上所述,建議的Maven構建命令:jar和pom工程:mvn clean install/deploy -B -e -U -P,web工程:mvn clean package -B -e -U -P

讀一本Maven的好書

建議使用Maven的同學們抽時間去閱讀一下《Maven實戰》這本書,是一本很好的Maven書籍,適合所有Maven使用者。

相關推薦

使用Maven一些建議希望喜歡

搭建私有倉庫 Maven的倉庫是用來存放Maven工程依賴的包的(通常為jar和pom,war包也可以依賴,在一些很複雜的專案中才能用到)。倉庫分為三種:中央倉庫、第三方倉庫、本地倉庫。 中央倉庫 由Maven官方提供,地址:http://repo1.maven.org/,

給迷茫的JAVA員一些中肯建議不然就廢了

Java最近好多人私信問我,該怎樣才能成為高薪架構師,還有一個就對當前的狀態感到迷茫。我在此做一個簡單的說明,或者對迷茫中的你來說有些許幫助。 當前你感到迷茫嗎? 有很多人對現在的工作感到很沒意思,因為當前的工作,完全是實現業務,技術上沒有任何提高。在這種狀態下就會感到迷茫,特別是一想到將來這種迷茫感就更強烈

機器學習Logistic迴歸@歡迎來到機器學習課堂!希望有所收穫!

機器學習實戰專輯part1——Logistic迴歸@[適合初學小白超詳細!] 作為一個學習過java的熱愛程式碼的研究生也是未來的程式媛,學習python覺得頗為開心,但是一路走來只有自己知道自己的艱辛和不易,從一個小白走到今天不知道入了多少坑走了多少彎路,所以,想把自己曾經不懂還有考慮

Python丨給的爬蟲程式碼裡面新增一些功能的程式碼與眾不同

1. 爬蟲程式隨機暫停x秒 需要用到time和random兩個python自建庫。 用法:time.sleep(x) 程式暫停x秒    random.uniform(a, b):產生從a到b中的隨機浮點數    random.random():產生從0到1中的隨機浮點數,是unif

一個有意思的故事希望以後也有這種修養這樣厚道

而後 離開 十大 正在 一個 說道 給他 為什麽 我們 清朝的時候,常州有一個魏廉訪,他的父親是個醫生,樂善好施。 有一次魏老先生被請往一病人家中治病。 他離開後,病人發現藏在枕頭下的十兩銀子不見了。 病人的的兒子,懷疑是魏老先生拿了,就到老先生家,對他說:&ldqu

c++有關繼承的圖解一點點想法希望可以幫到

公有繼承(public)、私有繼承(private)、保護繼承(protected) 1. 公有繼承(public) 公有繼承的特點是基類的公有成員和保護成員作為派生類的成員時,它們都保持原有的狀態,而基類的私有成員仍然是私有的,不能被這個派生類的子類所訪問。

給迷茫的Java程式設計師一些中肯建議還在虛度光陰嗎?

最近好多人私信問我,該怎樣才能成為高薪架構師,還有一個就對當前的狀態感到迷茫,我在此做一個簡單的說明,或者對迷茫中的你來說有些許幫助。 當前你感到迷茫嗎? 有很多人對現在的工作感到很沒意思,因為當前的工作,完全是實現業務,技術上沒有任何提高。在這種狀態下就會感到迷茫,特別是一想到將來這種迷茫

【小菜鳥】本人部落格沒有任何侵權的想法僅僅是總結了一些前輩們的經驗做了一些小筆記發表。 在以往學習過程中遇到太多太多的問題網上都有答案只不過太多太雜解決問題的答案也是可遇不可求 總是事倍功半。特此總結出一些自己的經驗,希望能夠幫助大家。

小菜鳥 本人部落格,沒有任何侵權的想法,僅僅是總結了一些前輩們的經驗,做了一些小筆記發表。 在以往學習過程中,遇到太多太多的小問題,網上都有答案,只不過太多太雜,解決問題的答案也是可遇不可求, 總是事倍功半。特...

給迷茫的Java員一些中肯建議還在虛度光陰嗎?

最近好多人私信問我,該怎樣才能成為高薪架構師,還有一個就對當前的狀態感到迷茫,我在此做一個簡單的

我們的太陽鍾漢良不老男神希望繼續帥下去

在現在娛樂圈內的明星是保養的越來越好,也導致了不少不老男神女神的湧現,他們可是給我留下了很多深刻的回憶啊!當今的圈內也不乏越長越年輕的人,我覺得時光在他們得身上並沒有留下太多來過得痕跡。現在我就要來和大家聊聊我們的男神小太陽鍾漢良。 提到他,不少人的印象都是“帥”,他自己也因為帥而得了

優雅的使用MacBook(一些技巧不會知道的)

整理了一些MacBook使用過程中發現的吊炸天的小技巧,我不太相信你都知道。 1.command+delete快速刪除檔案。 媽媽再也不用擔心我用右鍵->刪除這麼low的技能了! 2.shift+option+vol-down微調聲音。 少

胖親測分享3個實用建議幫助提升工作效率

在工作中,你是否經常因為趕專案而加班? 或者因為領導突然安排了一些zz任務而打亂了原先的計劃? 又或者因為新出了一部電視劇《長安十二時辰》而控制不住自己去刷劇,卻把還沒有完成的工作、作業放在了一邊? 以上這些情況我都有…… 這些情況的解決方案其實有很多,知乎上也能一搜一大堆。但今天我要講的是自己親測有效的

好朋友的希望一起幫助下度過難關方便的話請幫忙轉發一下謝謝。————————心情記錄

detail sha tail 之前 沒有 from weixin timeline 方便 好朋友的小姨,希望一起幫助下度過難關,方便的話請幫忙轉發一下,謝謝。 https://ssl.gongyi.qq.com/m/weixin/ws_detail.html?from

maven自己主動編譯解決每次代碼改動須要又一次編譯的繁瑣

mvn clean span ng- ips 每次 servlet trac 問題 文件夾 maven結構的項目,我們在每次改動代碼後都會須要手動編譯,以下命令能夠解決此問題。僅僅要代碼改動。會自己主動幫你編譯。 進入項目文件夾運行:mvn -U eclipse:

10個Linux腳本面試題看看答出幾個?

linux 入門 shell 1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; declare -a shell declare sum_login=0

一個故事告訴什麽是資本主義

... 走了 大小 說明 給他 之前 rdquo 成了 討論 獅子讓一只豹子管理10只狼,並給他們分發食物......   豹子領到肉之後,把肉平均分成了11份,自己要了一份,其他給了10只狼。 這10只狼都感覺自己分的少,合起夥來跟豹子唱對臺戲了。 豹子灰溜溜的找獅子辭

「mysql優化專題」單表查詢優化的一些總結非索引設計(3)

flush src innodb atp show 優化 ase 驗證 where子句 單表查詢優化:(關於索引,後面再開單章講解) (0)可以先使用 EXPLAIN 關鍵字可以讓你知道MySQL是如何處理你的SQL語句的。這可以幫我們分析是查詢語句或是表結構的性能瓶頸。

html5的一些技巧持續補充ing

pre 補充 body 小技巧 input log gpo date 自動 HTML <label> 標簽的 for 屬性 用處:項目中常有點擊label標簽自動勾選/取消radio的需求,之前都是js動態實現的啊啊啊,相見恨晚,23333 顯式的聯系:

CSS 黑魔法技巧少寫不必要的JS代碼更優雅

3D splay conf fill page under 隔離 popover 運行 首頁 登錄註冊 CSS 黑魔法小技巧,讓你少寫不必要的JS,代碼更優雅 閱讀 8113 收藏 927 2017-09-26 原文鏈接:git

動手使用ABAP Channel開發一些工具提升日常工作效率

sed 上一個 排序 實現 觀測 bsp github 時間 平臺 今天的故事要從ABAP小遊戲說起。 中國的ABAP從業者們手頭或多或少都搜集了一些ABAP小遊戲,比如下面這些。 消滅星星: 掃雷: 來自我的朋友劉夢,公眾號"SAP幹貨鋪"裏的俄羅斯方塊: 用ABA