Maven 实战 03 仓库

对于maven来说,仓库只分为两类:本地仓库和远程仓库
除了中央仓库和私服,还有很多其他公开的远程仓库,常见的有java.net Maven库(http://download.java.net/maven/2/)和jboss Maven库(http://repository.jboss.com/maven2/)等
本地仓库
编辑文件~/.m2/settings.xml,设置localRepository元素的值为想要的仓库地址
<settings>  
    <localRepository>D:\java\repository\</localRepository>  
 </settings>
中央仓库
    默认的中央仓库为:http://repol.maven.org/maven2
    <repository>
        <id>central</id>
        <url>http://repo1.maven.org/maven2/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    snapshots-enabled 为false  表示不从中央仓库下载快照的构建,包含这段配置的文件是所有maven项目都会继承的超级POM.
远程仓库
很多情况下,默认的远程仓库无法满足项目的需求,可能项目需要的构件存于另一个远程仓库。修改POM文件
    <repositories>
        ....
        < repository>
            <id>central</id>
            <url>http://repository.jboss.com/maven2</url>
            <snapshots>
                <enabled>false</enabled>
                <checksumPolicy>ignore</checksumPolicy>
                <updatePolicy>dalily</updatePolicy>
            </snapshots>
        </ repository>
        ...
    </repositories>
<updatePolicy>配置maven从远程仓库检查更新的频率,默认为dalily(每天),never,always(每次构件都检查),interval:X(每个X分钟) <checksumPolicy>配置maven的检查策略与文件策略。默认为warn(执行构件是输出警告信息),fail(构件失败),ignore(完全忽略)
远程仓库认证
    配置认证信息必须在settings.xml文件中
    <servers>
        ...
        < server>
          <id>deploymentRepo</id>
          <username>repouser</username>
          <password>repopwd</password>
        </ server>
        ...
    </servers>
    settings.xml中server元素的id必须与POM中需要认证的repository元素的id完全一致。
部署至远程仓库,在POM中添加
    <distributionManagement>
        < repository>
            <id>proj-releases</id>
            <name>proj-releases repository</name>
            <url>http://192.168.1.100/content/repositories/pro-releases</url>
        </repository>
        < snapshotRepository>
            <id>proj-snapshot</id>
            <name>proj-snapshot repository</name>
            <url>http://192.168.1.100/content/repositories/pro-snapshot</url>
        </snapshotRepository>
    </distributionManagement>

 <repository>元素表示发布版本仓库,
<snapshotRepository>表示快照版本仓库
通过 mvn deploy命令发布构件
镜像
    如果仓库X可以提供仓库Y的所有内容,那么就可以认为X是Y的一个镜像
    在settings.xml 中的mirror中配置
    <mirrors>
        <mirror>
          <id>maven.net.cn</id>
          <mirrorOf>central</mirrorOf>
          <name>one of the central mirros in china</name>
          <url>http://maven.net.cn/content/groups/public/</url>
        </mirror>
    </mirrors>
    < mirrorOf>值为central,表示该配置为中央仓库的镜像,对于任何中央仓库的请求都会转至该请求。
    镜像最常见的用法是结合私服
    <mirror>
          <id>internal-repository</id>
          <mirrorOf>*</mirrorOf>
          <name>one of the central mirros in china</name>
          <url>http://192.168.1.100/maven2</url>
    </mirror>
    <mirrorOf>*</mirrorOf>匹配所有远程仓库
    <mirrorOf>external:*</mirrorOf>配置所有不在本机的远程仓库
    <mirrorOf>rep1,rep2</mirrorOf>配置仓库rep1,rep2
    <mirrorOf>*,!rep1</mirrorOf>配置所有远程仓库,rep1除外



你可能感兴趣的:(maven)