Maven pom.xml 设置 repository 不生效解决方案

如果 Maven 在中央仓库中也找不到依赖的文件,它会停止构建过程并输出错误信息到控制台。为避免这种情况,Maven 提供了远程仓库的概念。

举例:添加远程仓库,在pom.xml中添加内容如下:


        
            elasticsearch-releases
            https://artifacts.elastic.co/maven
            
                true
            
            
                false
            
        
    

构建的时候,发现没有走到 elasticsearch-releases

 思路:从Maven 依赖搜索顺序考虑

Maven 仓库有三种类型:

  • 本地(local)
  • 中央(central)
  • 远程(remote)

当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:

  • 步骤 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
  • 步骤 2 - 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行步骤 4,如果找到了则下载到本地仓库中以备将来引用。
  • 步骤 3 - 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
  • 步骤 4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。

 这时,我们打开 Settings.xml 

Maven pom.xml 设置 repository 不生效解决方案_第1张图片

说明:该例中的值为星号,表示该配置是所有Maven仓库的镜像,任何对于远程仓库的请求都会被转至http://192.168.50.220:8081/nexus/content/groups/public/。为了满足一些复杂的需求,Maven还支持更高级的镜像配置: 
1.* 
匹配所有远程仓库。 
2.external:* 
匹配所有远程仓库,使用localhost的除外,使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。 
3.repo1,repo2 
匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。 
4.*,!repo1 
匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。  

因此对于请求远程仓库的请求不让它跳转,因此只要做如下修改即可

Maven pom.xml 设置 repository 不生效解决方案_第2张图片

你可能感兴趣的:(maven)