背景
最近有一个非常古老的JavaEE项目(外包公司给做的,我都想放弃了),使用Maven管理的。突然有一天,同事在本地运行时,发现下载依赖慢如蜗牛,究竟是什么东东在作祟呢?让我一一道来。
抽丝剥茧
一上来就在项目根目录执行mvn package,发现项目使用了一个Maven私服,私服地址还是ip,
使用ping 私服ip,结果ping不同。说明这个私服已经无法使用。问过三方公司之后,我也是无语,他们也是丈二和尚摸不着头脑,估计也是直接拿别人的项目应付的。
既然这个Maven私服无法使用,那干脆去掉吧。
果然不出所料,一下子出现了错误,出现错误,是好事。
显示部分依赖找不到。于是,到阿里云中央仓库(使用的是阿里云镜像库)搜索相关的依赖包,果然是没有搜索到结果。
那本地仓库应该有吧,之前该项目是顺利运行的。查看完之后,果然本地仓库保留着所有确实的jar包。
那为什么本地仓库存在jar包,不在本地找,非要去远程下载呢?(一直没想明白)
又不想搭建Maven私服,那该怎么办呢?
有事没事谷歌。
于是找到下面的方案,使用Maven本地jar包。
com.nealma my-jar 1.0system${project.basedir}/lib/my-jar.jar
1,在项目根目录创建了lib文件夹,所有的jar包从~/.m2中拷贝到了该目录。
2,指定scope为system,设置systemPath。
本该顺利的,谁知子模块执行的时候,${project.basedir}目录是子模块变化的。
那就用绝对路径吧,总算顺利执行。
但是想了想,不行啊,别人用的时候,还得手动更该,岂不烦死。
于是在每个子模块都拷贝了一份lib,好了,可以好好玩耍了。