遇到的问题:
最近遇到个项目支持,他在打jar包的时候,总是去网上下载 maven依赖,不去找我本地仓库的,就比较头大,原因不明
现在需求:就是让他不去网上下载依赖,使用本地的仓库依赖
场景:
当生产环境不能联网,maven依赖无法从网上下载,可以先从联网的开发环境下载maven依赖到自己的本地仓库,再将这个本地仓库复制到生产环境中,设置idea和修改maven配置使程序直接使用本地的maven依赖,这就是maven离线模式。
Q:什么时候需要maven离线模式?
A:没有网络,只有本地库,又是用maven来管理项目,在编译或者下载第三方Jar的时候,老是去中央仓库上自动下载,导致出问题
通过idea创建maven项目,maven插件会自动将maven依赖下载到本地仓库。
先要找到maven的本地仓库,可以通过file->settings->maven流程查看到maven本地仓库的位置,然后直接复制,粘贴到生产环境下。
打开IDEA的maven设置:file->settings搜索maven。注意要将maven设置为Work offline(离线模式),然后将User settings file配置成上一步拷贝的settings.xml的地址,点击OK。
maven离线打包的命令:mvn -o,此命令是在maven打包的时候不去下载仓库的依赖。
mvn clean package -o -DskipTest // 或者使用这种方式跳过测试
mvn clean package -o -Dmaven.test.skip=true
5、可能出现的问题
按照步骤走完,可能依旧无法只用maven本地仓库。调到idea项目中的pom.xml页面,会发现project标签报红显示无法获得依赖,或者直接启动项目显示某某依赖不存在,找到该依赖在maven本地仓库中得位置,删除其同层目录下得_remove.repositories文件,再次刷新启动项目就好了,如果刷新后idea中maven插件下dependxxxx目录下依赖报红,这可能是正常现象,直接启动项目就好了。
点击刷新
可能还会遇到别的问题,根据项目需求不同,但是大概步骤可以进行。