需求背景
- 某银行项目采用封闭式开发,所有代码都运行在内网环境,不可连接互联网
- 此时,我们将一个标准的maven项目源代码拷贝进内网后,如何让其编译通过?
- 因为不能连接互联网的maven中央仓库,也可能不能连接阿里云maven仓库,许多开源依赖包都无法拉取到
- 当然还有可能该银行提供了自己的maven私服,但可能该私服上不存在你的项目所需的所有依赖或对应的版本
- 这个时候,可能有点手足无措
- 下面分享下个人的解决方案,欢迎大家指教
情况一:内网环境存在私有仓库,且私有仓库配置了中央仓库可连互联网
- 这种情况处理起来比较简单些
- 假设私有仓库可能设置了maven的国外镜像仓库或阿里云的镜像仓库
- 此时你项目中的绝大部分依赖都可以正常拉取到对应的版本过来
- 但是也存在一些特殊的依赖,比如你们公司自己开发的一些其他项目的jar,或者又是一些商业化的组件
- 这时,你需要做的就是将你的项目导入到idea后,并配置好maven及settings,右键maven刷新
- 视你的网速和项目大小,可能需要5到20分钟不等的时间,idea调用maven插件在下载大量依赖包
- 最终,你可能看到这么一份错误列表
- 而这里面列的,大概都是互联网仓库里找不到的依赖包了
- 此时,推荐你到maven私服上查询并确认下,这些依赖是否确实不存在
- 确认无误后,将这些jar包从互联网环境中拿到(这里有很多办法),然后上传到maven私服上,填写对相应的坐标
- 上传后,再次本地尝试打包,应该即可正常