某个服务需要在网络完全隔绝的环境中进行构建,记录一下maven离线构建的方法及需要注意的细节。
前置准备
由于不能连接外网,甚至不能连接内网的nexus私服,所以需要提前将需要的依赖jar包下载来。
但是我们不能直接复制本地仓库的全部jar包,因为包含了其他不需要的依赖;而人工选择又因为依赖太多而遗漏。
对此我们可以重新设置本地仓库到新文件夹,然后再项目中执行maven package,即可把需要的jar包下载下来。
此外需要注意一点,maven执行package、clean、install这些命令时,也是需要有对应的依赖jar包,所以如果你需要在离线环境中执行其他什么操作,需要在上一步的maven package后执行一下对应的操作命令。
maven配置文件修改
配置文件路径为:apache-maven-3.8.x/conf/settings.xml。
一共有3处需要修改:
1.localRepository
<localRepository>/path/to/local/repo</localRepository>
这里填写依赖存放的路径,注意要放到注释外面来。
2.offline
<offline>true</offline>
默认为false,我们需要修改为true。
3.mirror
<mirror>
<id>central</id>
<mirrorOf>*</mirrorOf>
<name>central</name>
<url>file:/root/dependences</url>
</mirror>
将maven程序和依赖复制到离线服务器上,配置好环境变量即可。
后续就能正常使用maven进行构建了。