maven实战笔记-5

                                                       第六章 仓库
    6.3  仓库的分类

    6.3.1  本地仓库
    用户目录/.m2/repository是本地仓库目录。、
    编辑~/.m2/settings.xml,设置本地仓库地址。
    <settings>
        <localRepository>d:\java\repository\</localRepository>
    <settings>
    默认情况下,~/.m2/settings.xml文件是不存在的,用户需要从$M2_HOME/conf/settings.xml复制。

    6.3.2  远程仓库
    本地仓库就好比书房,我需要读书的时候先从书房找,相应地,Maven需要构件的时候先从本地仓库找。远程仓库就好比书店(包括实体书店、网上书店等),当我无法从自己的书房找到需要的书的时候,就会从书店购买后放到书房里。当Maven无法从本地仓库找到需要的构件的时候,就会从远程仓库下载构件至本地仓库。一般地,对于每个人来说,书房只有一个,但外面的书店有很多,类似地,对于Maven来说,每个用户只有一个本地仓库,但可以配置访问很多远程仓库。

    6.3.3  中央仓库
    中央仓库是一个默认的远程仓库,Maven的安装文件自带了中央仓库的配置。打开$M2_HOME/lib/maven-model-builder-3.0.jar,然后访问路径
org/apache/maven/model/pom-4.0.0.xml,可以看到如下的配置:
    <repositories>
        <repository>
            <id>central</id>
            <name>Maven Repository Switchboard</name>
            <url>http://repo1.maven.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    6.3.4  私服
    私服的作用:

  •     节省自己的外网带宽。
  •     加速Maven构建。
  •     部署第三方构件。
  •     提高稳定性,增强控制。
  •     降低中央仓库的负荷。


    6.4  远程仓库的配置
    配置POM使用JBoss Maven仓库
    <project>
        …
        <repositories>
            <repository>
                <id>jboss</id>
                <name>JBoss Repository</name>
                <url>http://repository.jboss.com/maven2/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                <snapshots>
            </repository>
        <repositories>
    </project>
   
    对于releases和snapshots来说,除了enabled,它们还包含另外两个子元素updatePolicy和checksumPolicy:
    <snapshots>
        <enabled>true</enabled>
        <updatePolicy>daily</updatePolicy>
        <checksumPolicy>ignore</checksumPolicy>
    <snapshots>
   
    元素updatePolicy用来配置Maven从远程仓库检查更新的频率,默认的值是daily,表示Maven每天检查一次。其他可用的值包括:never—从不检查更新;always—每次构建都检查更新;interval:X—每隔X分钟检查一次更新(X为任意整数)。
    元素checksumPolicy用来配置Maven检查检验和文件的策略。当构件被部署到Maven仓库中时,会同时部署对应的校验和文件。在下载构件的时候,Maven会验证校验和文件,如果校验和验证失败,怎么办:当checksumPolicy的值为默认的warn时,Maven会在执行构件时输出警告信息,其他可用的值包括:fail—Maven遇到校验和错误就让构建失败;ignore—使Maven完全忽略校验和错误。

    6.7  镜像
    如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取。举个例子,http://maven.net.cn/content/groups/public/是中央仓库http://repo1.maven.org/maven2/在中国的镜像,由于地理位置的因素,该镜像往往能够提供比中央仓库更快的服务。因此,可以配置Maven使用该镜像来替代中央仓库。编辑settings.xml:
    <settings>
        …
        <mirrors>
            <mirror>
                <id>maven.net.cn</id>
                <name>one of the central mirrors in China</name>
                <url>http://maven.net.cn/content/groups/public/</url>
                <mirrorOf>central<mirrorOf>           
           <mirror>
        <mirrors>
        …
    <settings>

    配置私服作为镜像:
    <settings>
        …
        <mirrors>
            <mirror>
                <id>internal-repository</id>
                <name>Internal Repository Manager </name>
                <url>http://192.168.1.100/maven2/</url>
                <mirrorOf>central<mirrorOf>           
            <mirror>
        <mirrors>
        …
    <settings>

    6.8  仓库搜索服务
    6.8.1  Sonatype Nexus
    地址:http://repository.sonatype.org/

    6.8.2  Jarvana
    地址:http://www.jarvana.com/jarvana/

    6.8.3  MVNbrowser
    地址:http://www.mvnbrowser.com

    6.8.4  MVNRepository
    地址:http://mvnRepository.com/

 

你可能感兴趣的:(maven,职场,学习笔记,休闲,maven笔记)