码迷,mamicode.com
首页 > 其他好文 > 详细

Maven3仓库与配置

时间:2015-10-20 22:58:35      阅读:442      评论:0      收藏:0      [点我收藏+]

标签:

mavne仓库

maven的仓库分为两类:本地仓库和远程仓库,当maven在按照坐标查找构建或插件时,会先在本地仓库查找,能找到就会直接使用本地仓库的构建或插件;当没找到对应的构建或插件或者需要查看更新时,才会去远程仓库查找,找到后会下载到本地,没找到会报错。

maven的本地仓库

maven的本地仓库位置默认在用户目录下的.m2/repository,可以通过配置settings.xml中的

<settings>
    ...
    <localRepository></localRepository>
    ...
</settings>

配置本地仓库到其他位置,需要注意的是,要使settings.xml中的配置生效,在IDE中必须指定settings.xml位置;若在命令行中使用,默认会使用maven_home目录下config中的settings.xml,可以使用-s指定要使用的settings.xml文件的位置。

maven的远程仓库

maven的远程仓库又分为公开的仓库(如默认的中央仓库、java.net Maven库、JBoss Maven库等)和私服(一般为公司局域网中使用,节约流量,便于管理,加速构建,常见的可以使用nexus这个开源项目来快速搭建)

maven的远程仓库配置

maven的远程仓库配置可以在pom.xml中或settings.xml中完成,pom.xml文件用来设置当前项目的配置项,如果有配置其他模块或其他项目会复用,可以在settings.xml中配置或者使用继承来实现配置的复用;settings.xml适合用来配置一些所有maven项目都会公用的配置信息,比如:maven构建以及插件的下载地址、maven的镜像、maven代理等

<repositories>
    <repository>
        <id>maven.oschia.net</id>
        <name>oschina maven repository</name>
        <url>http://maven.oschina.net/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>ignore</checksumPolicy>
        </snapshots>
        <layout>default</layout>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>maven.oschina.net</id>
        <name>oschina maven repository</name>
        <url>http://maven.oschina.net/content/groups/public/</url>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <layout>default</layout>
    </pluginRepository>
</pluginRepositories>

repositories元素下可以配置多个repository,每个repository表示一个远程仓库,repository下面的元素如下

  • id,每个repository需要一个唯一的id,如果id相同后面的配置会覆盖前面的配置,如maven的超级pom.xml(解压${M2_HOME}/lib/maven-model-builder-3.0.4.jar,在解压出来的目录的/org/apache/maven/model/pom-4.0.0.xml)中配置了maven的中央仓库,id为central,我们可以通过配置相同id覆盖中央仓库配置;

  • name,用于描述这个仓库

  • releases,enabled:true或false;updatePolicy:更新频率never-从不,always-每次构建都检查,daily-每天(默认),inerval:x-每隔x分钟;checksumPolicy:用来配置文件校验和策略,当勾践被部署到远程仓库会同时生成一个校验和文件,在下载构件时检查校验和,warn-校验失败输出警告(默认),fail-校验失败构建失败,ignore-忽略

  • snapshots 同上

  • layout,布局默认为default

pluginRepositories情况与上面基本一致。

部署仓库配置

私服可以用于部署第三方构件,需要在pom.xml文件中如下配置:

<distributionManagement>
    <repository>
        <id>project-release</id>
        <name>release repository</name>
        <url></url>
    </repository>
    <snapshotRepository>
        <id>project-snapshot</id>
        <name>snapshot repository</name>
        <url></url>
    </snapshotRepository>
</distributionManagement>

repository用来配置release版本的部署仓库,snapshotRepository用于配置snapshot版本的部署配置

仓库认证

在从仓库下载构建或者部署构件到仓库时,可以开启账号密码认证,只有拥有正确的账号密码的才可以使用,这是需要在settings.xml文件中配置认证信息,如下:

<settings>
......
    <servers>
        <server>
            <id>mapping repository id</id>
            <username></username>
            <password></password>
        </server>
    </servers>
......
</settings>


Maven3仓库与配置

标签:

原文地址:http://my.oschina.net/u/1413049/blog/519543

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!