我們常用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 搜尋完
執行完之後,如上所說,任意修改儲存,就能見證奇迹了。