maven配置

1.maven仓库的加载顺序

本地仓库 > setting.xml中的配置的仓库(在profile标签中设置的reposity)> pom
文件中设置的profile > pom文件中的reposity > 中央仓库mirror >中央仓库
note:mirror是仓库的代理如果需要从仓库中拉取jar包,会先寻找这个仓库对应的镜像,并从镜像中拉取,如果镜像中没有才会从仓库中拉取。所以镜像的与对应仓库在同一优先级,只是如果镜像存在的话会现在镜像中查找。
这也是我通常安装好maven之后需要添加aliyun镜像的原因了,maven默认会有一个id为central的中央仓库,所以即使不配置reposity也没什么大问题。

##setting.xml

    
        aliyun
        aliyun
        central
        https://maven.aliyun.com/repository/central
    

2.mirro server reposity的关系

但是中央仓库不会包含所有的jar包,例如一些驱动包或者我们自己的jar包,这时候就需要在setting.xml或者pom中添加私服仓库或者第三方仓库,两种方式作用一样,只是setting.xml的优先级比较高


仓库分类
##setting.xml setting.xml中的仓库在profile中设置,并利用activeProfiles激活,当然也可以设置激活条件,就这需要用到
  
      nexus_profile
      
        
          nexus_reposity
          Repository for JDK 1.4 builds
          http://192.168.1.1:8081/repository/maven-public/
          default
          
            true
          
          
            true
          
          always
        
      
      
        
          nexus_plugin_reposity
          Maven China Mirror
          http://192.168.1.1:8081/repository/maven-public/
          
            true
          
          
            false
              
        
      
    

    nexus_profile
  
##pom.xml
    
        
            nexus2
            nexus
            http://192.168.1.1:8081/repository/maven-public/
            
                true
            
            
                true
            
        
    
    
        
            nexus
            nexus
            http://192.168.1.1:8081/repository/maven-public/
            
                true
            
            
                true
            
        
    

2.上面这种方式只是可以下载jar包,但是如果需要添加自己的私服,就需要在setting.xml文件中添加server信息(即maven deploy时需要的用户名密码),以及在pom文件中添加

##pom.xml
    
        
            nexus-release
            NEXUS Release
            http://192.168.1.1:8081/repository/maven-snapshots/
        

        
            nexus-snapshots
            NEXUS SNAPSHOTS
            http://192.168.1.1:8081/repository/maven-snapshots/
        
    
##setting.xml
    
        nexus-release
        admin
        admin123
    
    
        nexus-snapshots
        admin
        admin123
    

需要注意server中的id必须要和distributionManagement中id相同。
如果你想为一个第三方库添加镜像,需要先设置仓库信息,然后添加镜像信息


    
        A
        http://www.A.com/maven2
    


    
        B
        B Central
        http://www.B.com/maven2
        A
    

profile标签可以添加激活条件,这样既可以根据项目设置不同的仓库,只需要添加activation标签

  • profile中定义的 properties键值对可以在pom.xml中使用,若有两个profile同时定义了一个属性hello,且这两个profile都被激活。那么后定义的profile会覆盖前面定义的profile属性,即在pom中使用的hello属性的值是后定义profile中的。
  • 使用默认激活方式时true,只有在没有有指定其他profile激活时才会生效。

      jdk-1.4
      
        1.4
      
      
      true
      
        test
      
      
        
          jdk14
          Repository for JDK 1.4 builds
          http://www.myhost.com/maven/jdk14
          default
          always
        
      
   

参照:Maven 仓库私服镜像加载顺序
maven mirro reposity server的关系

你可能感兴趣的:(maven配置)