idea使用联网缓存的pom进行离线开发
一个一直要频繁在线调试的项目,需要内网开发,外网某些接口无法使用,没办法面对这么高的调试频率,只能把开发环境搬到内网环境了,第一次这么操作,搞这套方案自己在虚拟机里面搞了一个无网环境测试出来的方案,简单记录一下,新手可能看不懂,有经验的看下应该能有帮助的,这个方案从头开始尝试着搞,大概耗时3个小时不断尝试,唉,说多都是泪T_T。
联网环境下执行,记得先清空local的文件,否则到时候复制仓库的时候文件会很大。
执行离线下载命令:mvn dependency:go-offline
检查本地仓库是否存在:
此处是我项目用到的,自己项目自己替换检查。
E:\maven\local\org\springframework\spring-framework-bom\5.3.19\spring-framework-bom-5.3.19.pom
E:\maven\local\org\springframework\security\spring-security-bom\5.7.12\spring-security-bom-5.7.12.pom
E:\maven\local\org\springframework\boot\spring-boot-dependencies\2.5.15\spring-boot-dependencies-2.5.15.pom
下载所有的插件:
mvn dependency:resolve-plugins
清理干扰文件(非常非常非常重要):
下载完成后,删除
_remote.repositories
和.lastUpdated
文件:
PowerShell执行:
Get-ChildItem -Path "E:\maven\local" -Include "_remote.repositories", "*.lastUpdated" -Recurse | Remove-Item -Force
这些文件会记录“从哪个 repo 下载”,如果 repo ID 不匹配,Maven 会拒绝使用本地文件。
离线环境:
勾选脱机工作,复制联网环境的maven文件夹到离线环境。
离线模式清空构建:
mvn -o clean -f pom.xml
无报错,成功启动。