您可以在maven 设置文件中指定要在脱机模式下运行,但是是否有等效的命令行选项?
我会想象像是这样的东西
mvn install -Dmaven.offline.true
Run Code Online (Sandbox Code Playgroud)
ctr*_*den 19
使用Maven调用离线模式mvn -o
.
但是,仅此一项可能还不够,因为有时当前项目会引用尚未出现在Maven本地存储库缓存(~/.m2/repository
)中的工件.尝试在脱机模式下构建该项目将失败,因为缺少必需的依赖项并且无法下载.
所以还有另一个有用的目标:
mvn dependency:go-offline
Run Code Online (Sandbox Code Playgroud)
这是一个伟大的命令,可以在飞机上跳跃之前运行,这将提高你的机会BUILD SUCCESS
.有关详细信息,请参阅go-offline文档.
mvn -o
在大多数情况下都可以工作,但在某些情况下,这还不够,因为从 Maven 3 开始,从远程/中央存储库下载的工件会_remote.repositories
在本地存储库中创建一个文件,其中包含有关下载依赖项的位置的参考。
如果稍后您在构建期间无法访问此远程存储库,则可能会导致一些问题。
一种可行的解决方法是使用mvn -o -llr yourGoal
.
从帮助文档:
-llr,--legacy-local-repository 使用 Maven 2 Legacy Local 存储库行为,即不使用 _remote.repositories。也可以是 通过使用激活 -Dmaven.legacyLocalRepo=true -o,--offline 离线工作
离线执行 mvn 的另一种方法是删除_remote.repositories
存储在下载的依赖项目录中的这些元数据。