天天看點

MAVEN使用經驗與技巧

我們常用maven建構項目,稱之為maven,其中maven的主要用途是對項目子產品的的管理和對項目當中的jar的管理。

管理maven module就不贅述了,沒啥好說的。主要說一下對jar的管理。

曾經,小時候,我第一次使用maven的時候大概也是熬了一個周的通宵才能在maven上入門,也許本人比較笨【尴尬臉】;

小技巧1:maven添加依賴時怎麼确定使用哪個版本才能與項目當中的jar包相容?看時間

再添加jar包時,如果有一組互相以來的jar包,一般添加jar包時都能夠同時找到其對應的版本,一旦出現版本不相容的情況,可以去maven倉庫中查這個jar出來的時間,被依賴的jar包版本應該比依賴它的jar包版本早,這個很好了解,就是先生後生的問題。

總結:根據時間選版本号

小技巧2:maven依賴出現紅色下劃線,說***.jar miss?再去下

這就是常見的丢jar情況,如果确定這個jar包應該有,并且可以被下到。那麼就去自己本地廠庫删除這個jar對應的版本号的檔案夾或者檔案夾下的所有内容,因為檔案夾裡肯定是沒有***.jar的,倒是可能會有一個XXX.lastUpdated,這就說明這個jar包因為網絡等原因沒有下載下傳到,那沒辦法隻能删了重下。任意修改pom.xml檔案,比如在無關緊要的地方加減空格空行等,Ctrl+s儲存,eclipse就會自動重新驗證maven包,下載下傳沒有的包;

總結:删除廠庫中的多餘檔案,任意改pom,儲存自動重下,直到下到為止。

小技巧3:maven 打包上傳指令行

//TODO

大招1:maven的pom檔案project報了錯,顯示有多個jar檔案miss,怎麼辦?

一般項目剛拉下來時會有這個問題,網絡不好,導緻本地maven廠庫中很多的jar沒有下到,一個一個手動删除有不知道他們在哪裡,儲存還是會報錯。怎麼一次清除所有的本地maven廠庫中的空的不含jar的檔案呢,或者說清除所有本地含有.lastUpdated的檔案呢?在網上看到别人寫的一段腳本:

windows系統:定義一個檔案名為cleanLastUpdated.bat的檔案,裡面填充如下内容執行即可

@echo off

rem 這裡寫你的倉庫路徑

set REPOSITORY_PATH=D:\maven\m2\repository

rem 正在搜尋...

for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do (

    del /s /q %%i

)

rem 搜尋完畢

pause

注意:路徑中的檔案夾名裡面不能包含空格,否則會報“找不到路徑”的錯誤。

linux/MAC(檔案名:cleanLastUpdated.sh)

# 這裡寫你的倉庫路徑
REPOSITORY_PATH=~/Documents/tools/apache-maven-3.0.3/repository
echo 正在搜尋...
find $REPOSITORY_PATH -name "*lastUpdated*" | xargs rm -fr
echo 搜尋完      

執行完之後,如上所說,任意修改儲存,就能見證奇迹了。