1. 絮絮叨叨
之前,同事告诉过一个加速编译的mvn命令
mvn -o -T 4C clean install -DskipTests -Dmaven.compile.fork=true
忽然,上周在公司的蛇口编译机器,执行这个命令就行不通了
错误信息,由于编以输出太多被淹没了,只能网上抄一个类似的
Cannot access aliyun-maven (...) in offline mode
and the ... has not been downloaded from it before
报错信息的重点:在in offline mode下无法访问本地配置的阿里maven库
2. 错误的解决办法
2.1 更新settings.xml
网上搜索以后,发现都是讲Intellij IDEA下,如何解决这个问题的:解决在IDEA14 的Maven下 出现 Cannot access in offline mode 问题
而自己是mvn命令,那就照葫芦画瓢,要不去某个地方关闭offline mode
最终,了解到可以修改settings.xml文件,添加以下内容以关闭offline mode
<offline>false</offline>
最后,运行起来还是出现一样的错误
2.2 settings.xml不生效的原因
直到后来,学习到了offline mode有关知识,才知道编译命令中的-o是开启offline mode
就算在settings.xml进行了全局配置,-o选项仍然会覆盖这个配置,使得此次编译开启了offline mode
学习知识,还是要全面了解,不然就跟这次一样
3 正确的解决方法
如果还是想要保留-o选项,则可以在执行前,先获取项目编译所需的依赖
执行如下命令,可以提前获取项目编译所需的依赖
mvn dependency:go-offline
然后,mvn -o 就不会报错了