背景
新项目是以 gradle 构建的,但是以前都是 maven 项目,既然 gradle 可以引用 maven 的仓库,那就直接配置 mavenLocal() 复用就好,结果我们配置了,依然不走 maven 默认仓库。
问题发现
查询 gradle 官网中关于配置 mavenLocal() 的说明时才恍然大悟,官网上有一段如下的话:
大概意思是说使用 mavenLocal() 配置 maven 的本地仓库后,如果仓库在 setting.xml中设置后则gradle默认会使用本地仓库。关于 gradle 查询setting.xml文件的顺序依次如下:USER_HOME/.m2/settings.xml >> M2_HOME/conf/settings.xml。
看到这里我才发现我的 maven 环境变量配置的是 MAVEN_HOME,而 gradle 默认只会查找 M2_HOME 的路径。所以我们既在用户目录下没有 .m2文件,配置的环境变量又不是 M2_HOME,gradle 能找到才怪呢。
解决
既然问题定位了,那解决问题就很容易了。
两种方式:
方式一:在用户目录下创建 .m2 文件夹,然后将 maven 安装目录中的 setting.xml 拷贝一份扔到 .m2 文件夹下面。
方式二:更改 maven 环境变量为 M2_HOME。