zoukankan      html  css  js  c++  java
  • maven

    来源于  https://lawsssscat.blog.csdn.net/article/details/104863855

    国内,用中央仓库(https://repo1.maven.org/maven2/)获取包太慢。
    因此,我们都用镜像。

    # 镜像配置

    <mirror>
          <id>tz-mirror</id>
          <mirrorOf>external:*,!mmkj</mirrorOf>
          <name>tz test nexus repository</name>
          <url>http://xxxxx:30003/repository/maven-proxy</url>
    </mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • id 唯一标识
    • mirrorOf 指定镜像的规则。
      就是什么情况会从镜像仓库拉取,而不是从原本的仓库拉取
      可选项参考链接:
      * 匹配所有
      external:* 除了本地缓存之后的所有仓库
      repo,repo1 repo 或者 repo1。 这里repo指的是仓库的id,下文会提到
      *,!repo1 除了repo1的所有仓库
    • name 名称描述
    • url 地址

    # maven配置 mirrorOf 坑

    记录maven配置 mirrorOf 坑

    我们用maven镜像,通常就是无脑从网上粘贴这样一段代码 ↓

    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>  
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意:
    这里,mirrorOf 配置成 * 就代表我们通过访问阿里云的maven仓库从而访问网路上所有的远程仓库

    也就是说,我们只会从 阿里云 现有仓库下包,如果阿里云没有,我们必须手动更改配置!

    因此,我们需要改成 central

    • 如果配置成central,就代表我们访问阿里云的central仓库,就是阿里的中央库(http://central.maven.org/maven2)
    • 如果配置成repo1,就代表通过阿里云访问http://repo1.maven.org/maven2,
      阿里云和这些远程仓库之间必须可以镜像,存在一定的镜像关系。

    # 配置多个mirror 和 切换 mirror

    配置多个 mirror 和简单。
    但是,每次切换 mirror 都要改配置文件,很麻烦,希望能够不改动配置文件的情况下,动态切换mirror配置。

    我们知道 settings.xml 中可以使用变量,可以尝试使用变量解决。

    <mirrors>
      <mirror>
        <id>aliyun</id>
        <url>https://maven.aliyun.com/repository/public</url>
        <mirrorOf>${aliyun}</mirrorOf>
      </mirror>
      <mirror>
        <id>netease</id>
        <url>http://mirrors.163.com/maven/repository/maven-public/</url>
        <mirrorOf>${netease}</mirrorOf>
      </mirror>
      <mirror>
        <id>default</id>
        <url>http://192.168.0.100/nexus/repository/maven-public/</url>
        <mirrorOf>central</mirrorOf>
      </mirror>
    </mirrors>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    我们知道,默认情况下配置多个mirror的情况下,只有第一个生效。
    那么我们可以将 id 改为 default 作为默认值,前面配置的使用环境变量动态切换。
    (如果没有 default , 会用第一个 mirror)

    默认情况下,执行: mvn help:effective-settings 可以看到使用的是私服。

    • 如果希望使用阿里云镜像,如下执行:
      mvn help-effective-settings -Daliyun=central

    • 同样的道理,使用网易镜像,则执行:
      mvn help:effective-settings -Dnetease=central


    最后,附上几个仓库 mirror

       <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>
       </mirror>
    
    	    <mirror>    
          <id>ui</id>    
          <mirrorOf>central</mirrorOf>    
          <name>Human Readable Name for this Mirror.</name>    
          <url>http://uk.maven.org/maven2/</url>    
        </mirror>    
     
    	    <mirror>    
          <id>ibiblio</id>    
          <mirrorOf>central</mirrorOf>    
          <name>Human Readable Name for this Mirror.</name>    
          <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>    
        </mirror>  
     
        <mirror>    
          <id>jboss-public-repository-group</id>    
          <mirrorOf>central</mirrorOf>    
          <name>JBoss Public Repository Group</name>    
          <url>http://repository.jboss.org/nexus/content/groups/public</url>    
        </mirror> 
        
        <mirror>    
          <id>OSCN</id>  
          <name>OSChina Central</name>         
          <url>http://maven.oschina.net/content/groups/public/</url>  
          <mirrorOf>central</mirrorOf>    
        </mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    maven的中央(central)仓库的镜像地址

    (最快) http://maven.ibiblio.org/maven2/
    http://central.maven.org/maven2/
    http://repo1.maven.apache.org/maven2/
    http://repo1.maven.org/maven2/
    http://mirrors.ibiblio.org/pub/mirrors/maven2/
    https://repository.jboss.org/nexus/content/groups/public/
    http://repo2.maven.org/maven2/


    最快的 maven repository–阿里镜像仓库
    国内最好的maven repository
    第一步:修改maven根目录下的conf文件夹中的setting.xml文件,内容如下:

        <mirror>
          <id>alimaven</id>
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>central</mirrorOf>        
        </mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    第二步: pom.xml文件里添加

    <repositories>  
            <repository>  
                <id>alimaven</id>  
                <name>aliyun maven</name>  
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
                <releases>  
                    <enabled>true</enabled>  
                </releases>  
                <snapshots>  
                    <enabled>false</enabled>  
                </snapshots>  
            </repository>  
    </repositories>  
  • 相关阅读:
    自定义UILabel,使文字居左上显示
    xcode 7 运行项目报错 -fembed-bitcode is not supported on versions of iOS prior to 6.0
    git 如何删除本地未提交的文件
    coco2d-x技术
    mac 查看端口是否被使用
    ios 提交
    oc基础复习10-OC的id
    oc基础复习09-OC的self 和super(深入理解)
    oc基础复习08-OC的类方法
    oc基础复习07-OC的弱语法(转)
  • 原文地址:https://www.cnblogs.com/alexgl2008/p/13949291.html
Copyright © 2011-2022 走看看