一、背景
在日常工作中,代码工程的保存和协作开发一般是通过代码仓库实现的。但是对于正常的多人研究开发时,工程代码的物理拷贝也是需要的,这可以节省工程代码依赖环境的安装和配置,同时也能保证代码完整和版本一致。
在大部分企业拷贝代码工程后,一般是有网环境的,缺少什么就可以下载或者安装对应库包。但是也存在有些无互联网的情况存在。那么如何在离线情况下,使用IDEA加载从他人完整拷贝过来的spring boot工程呢?本篇文章就是要讲讲离线情况idea加载他人工程代码,并解决其中出现的问题。
二、IDEA加载情况和处理
1、物理拷贝他人完整的代码工程到本机合适位置,其中包括java工程代码“demo”和依赖的jar包“.m2”。
2、打开IntelliJ IDEA软件,File->Open,选择要打开项目目录,打开加载demo工程。直接编译会发现存在大量的报错信息。均是代码中引用的jar包库函数找不到的问题。
3、之所以报错,是因为还没有配置自己的maven
打开工程配置窗口:File->Settings,选择Build,Execution,Deployment下的Maven
然后修改图上红框中的文件路径,一打开上面的是本机电脑上idea安装时默认的路径。
4、设置依赖jar包路径
Maven home Directory选择Bundled(Maven3)
User settings file选择拷贝过来.m2中的settings.xml文件,如果没有,可以去其他工程拷贝一个过来。这里面也相对简单:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>aliyun nexus repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
-->
<localRepository>/home/navi_road/.m2/repository</localRepository>
</settings>
这里面由于是离线环境,镜像url这块直接注释掉。因为这里有可能会导致maven不去加载离线的repository文件夹,而去通过url下载,但无网环境又一直无法下载使得工程一直报错。
另外本地repository需要填写正确或者不加(如果下面Local repository有设置),最好加上。
Local repository 直接选择拷贝过来.m2中的repository文件夹
注意:这两者后面的Override均需要勾选!
5、点击apply和ok,然后等待maven设置的识别和导入
直接右击工程,选择Maven->Reimport或者右下角提示“Maven projects need to be imported:Import Changes/Enable Auto-Import”可以点击其中任一个。
注意:这一步可能会一直没能完成,使得maven配置导入的没啥效果仍然存在报错。这时候不要怀疑自己设置问题,因为你多点击点击Reimport,然后重启工程等等,过一段时间他就能读取到正确的.m2中的repository文件夹开始导入jar包了。此处需要的就是耐心。
如果开始读取repository文件夹中的jar包了,会有进度条,并且有点慢,读取完后工程中jar包找不到的错误就都解决了。
6、配置好tomcat
7、编译和运行工程即可。