欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apache Maven 仓库使用的机制及基本配置(2)

程序员文章站 2022-06-18 19:53:57
...
    ***传统依赖目标jar的方式:***
        访问目标官网-->下载目标jar文件-->添加该目标jar到项目中并build path-->版本升级需要重复操作
    ***maven管理方式:***
        给定目标jar的坐标(groupId、artifactId、version)
        -->maven在本地maven仓库中查找,若有就建立依赖,
              若没有就去maven*仓库中查找并自动完成下载并存放在本地maven仓库中
             (如果没有指定version参数就自动下载仓库中最新版本)
             (如果配置了其它*仓库,当然就自动到指定的地方去搜索并下载,ex:阿里*仓库等)

    ***配置本地仓库***
        在maven的安装目录中的conf目录下有settings.xml文件(D:\360Cloud\maven\Tools\apache-maven-3.5.0-bin\conf\settings.xml)
        line52:
            Default: ${user.home}/.m2/repository
            默认的本地仓库位置是:
            C:\Users\JACK\.m2\repository
        line:53:
            手动配置  <localRepository>D:\360Cloud\maven\Repository</localRepository>
    ***配置*仓库***
        默认的 Maven *存储库 – http://repo1.maven.org/maven2/ 
        也可以配置一个自己钟爱的远程*库
            在maven的settings.xml文件里的mirrors节点,添加如下子节点:
                <mirror>  
                    <id>nexus-aliyun</id>  
                    <mirrorOf>central</mirrorOf>    
                    <name>Nexus aliyun</name>  
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
                </mirror> 
            或者直接在profiles->profile->repositories节点,添加如下子节点:
                <repository>
                    <id>nexus-aliyun</id>
                    <name>Nexus aliyun</name>
                    <layout>default</layout>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                </repository>

    ***代理的配置***    
        如果公司不允许直接访问外网,这时候,我们需要为maven配置一个代理服务器,才能正常从外部远程仓库中下载依赖。
        要先运行telnet  192.168.10.110 8888来检查该地址的该端口是否畅通
        在settings.xml文件中配置 proxies节点:
            <proxies>
              <proxy>
                 <id>my-proxy</id>
                 <active>true</active>
                 <protocol>http</protocol>
                 <host>192.168.10.110</host>
                 <port>8888</port>
                 <!--
                 <username>lg</username>
                 <password>123456</password>
                 <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts>
                 -->
              </proxy>
            </proxies>
        proxies下可以有多个proxy元素,如果你声明了多个proxy元素,则默认情况下第一个被**的proxy会生效。
        这里声明 了一个id为my-proxy的代理,
            active的值为true表示**该代理,
            protocol表示使用的代理协议,这里是http。
            host和port是指定正确的主机名(host元素)和端口(port元素)
            注释掉的username、password、nonProxyHost 几个元素,当你的代理服务需要认证时,就需要配置username和password。
                nonProxyHost元素用来指定哪些主机名不需要代理,可以 使用 | 符号来分隔多个主机名。
                此外,该配置也支持通配符,如*.google.com表示所有以google.com结尾的域名访问都不要通过代理。