我们常用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 搜索完执行完之后,如上所说,任意修改保存,就能见证奇迹了。