本地创建默认路径在 用户目录\.m2\repository,如果需要自定义本地创建目录地址,可以编辑文件 用户目录\.m2\settings.xml(文件不存在,则需要从Maven安装目录的Conf目录复制),设置 localRepository 元素的值为希望的本地仓库地址,例如:

<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"

                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <!-- localRepository

| The path to the local repository maven will use to store artifacts.

|

| Default: ${user.home}/.m2/repository-->

    <localRepository>D:\MavenRepository</localRepository>

    <!--

    省略其他配置

-->

</settings>

 
 

如果需要将本地项目安装到本地仓库,可以在项目中执行如下命令:

mvn
clean
install

命令结果:

 
 

参数:

  • -U 强制Maven检查更新

 
 

  1. 配置远程仓库,在默认的中央仓库无法满足项目的需求,可能项目需要的构件存在与另一个远程仓库中,这时,可以在POM中配置该仓库:

        <repositories>

            <!-- 声明一个仓库 -->

            <repository>

            <!-- 仓库的名称,必须唯一,如果设置为 central 则会替换中央仓库 -->

                    <id>JBoss Repository</id>

                    <!-- 仓库的地址 -->

                    <url>http://repository.jboss.com/maven2/</url>

                    <!-- 开启仓库的发布版本下载支持 -->

                    <releases>

                          <enabled>true</enabled>

    <!-- 配置检查校验和文件的策略,默认值:warn,可选值:fail、ignore -->

    <checksumPolicy></checksumPolicy>

    <!-- 配置从远程仓库检查更新的频率,默认值:daily(每天),可选值:never(不检查)、always(每次构建都检查)、interval:X(每隔X分钟检查一次) -->

    <updatePolicy></updatePolicy>

    </releases>

                    <!-- 开启仓库的快照版本下载支持 -->

                    <snapshots>

                        
    <enabled>false</enabled>

    <!-- 配置检查校验和文件的策略,默认值:warn,可选值:fail、ignore -->

    <checksumPolicy></checksumPolicy>

    <!-- 配置从远程仓库检查更新的频率,默认值:daily(每天),可选值:never(不检查)、always(每次构建都检查)、interval:X(每隔X分钟检查一次) -->

    <updatePolicy></updatePolicy>

                    </snapshots>

                    <!-- 仓库布局,default 表示 Maven2及Maven3的布局 -->

                    <layout>default</layout>

              </repository>

       </repositories>

  2. 远程仓库的认证,处于安全方面的考虑,我们需要提供认证信息才能访问一些远程仓库,这时为了能让Maven访问仓库的内容,就需要配置认证信息,认证信息配置在
    setting.xml
    文件中,使用
    servers
    元素及其
    server子元素配置仓库认证信息,示例配置如下:

    <servers>

        <server>

            <!-- POM 配置中,需要认证的
    repository元素的 Id -->

            <id>deploymentRepo</id>

            <!-- 认证用户 -->

            <username>repouser</username>

            <!-- 认证密码 -->

            <password>repopwd</password>

        </server>

    </servers>

  3. 部署到远程仓库,私服的一大作用是部署第三方构建,包括组织内部生成的构建以及一些无法从外部仓库直接获取的构件,在POM文件,配置
    distributionManagement
    元素,该元素包含
    repository

    snapshotRepository
    子元素,前者表示发布版本构件的仓库,后者表示快照版本的仓库,如果远程仓库需要认证,则参考前面的描述,示例配置如下:

    <distributionManagement>

        <repository>

            <!-- 仓库的唯一标识,必须唯一 -->

            <id>Drsoft Repository</id>

            <!-- 仓库的名称,方便人阅读 -->

            <name>Drsoft 仓库</name>

            <!-- 仓库的地址 -->

            <url>http://repository.drsoft/meave2/</url>

        </repository>

        <snapshotRepository>

            <!-- 仓库的唯一标识,必须唯一 -->

            <id>InnerRepository-Shapshot</id>

            <!-- 仓库的名称,方便人阅读 -->

            <name>Inner Repository-Shapshot</name>

            <!-- 仓库的地址 -->

            <url>http://localhost:8081/nexus/content/repositories/InnerRepository-Shapshot/</url>

            <!-- 示是否为Snapshot版本分配一个包含时间戳的构建号 -->

            <uniqueVersion>true</uniqueVersion>

            <!-- 仓库存储布局 -->

            <layout>default</layout>

     
    </snapshotRepository>

    配置完成后,执行以下命令:

    mvn clean deploy

    Maven
    会根据输出的构件部署到配置对应的远程仓库,如果是快照版本则部署到快照仓库,否则部署到发布仓库

  4. 仓库镜像,如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像,例如 http://maven.net.cn/content/groups/public/ 是中央仓库在中国的镜像,因此可以配置 Maven 使用该镜像来替代中央仓库,编辑 setting.xml 配置文件,镜像仓库的认证也和远程仓库的认证配置一致,增加镜像仓库的配置:

    <mirrors>

        <mirror>

            <!-- 镜像仓库的唯一标识 -->

            <id>mirrorId</id>

            <!-- 镜像仓库的名称 -->

            <name>Human Readable Name for this Mirror.</name>

            <!-- 镜像仓库的URL地址 -->

            <url>http://my.repository.com/repo/path</url>

            <!-- 配置那个仓库的镜像,其值为 repository 的 Id,可以使用
    *
    标识所有仓库 -->

            <mirrorOf>repositoryId</mirrorOf>

        </mirror>

    </mirrors>

     
     

    高级镜像配置:

  • <mirrorOf>*</mirrorOf>:匹配所有远程仓库
  • <mirrorOf>external:*</mirrorOf>:匹配所有远程仓库,使用 localhost 除外,使用 file:\\ 协议的除外
  • <mirrorOf>repo1,repo2</mirrorOf>:匹配仓库repo1 和 repo2 ,使用逗号分隔多个远程仓库
  • <mirrorOf>*,!repo2</mirrorOf>:匹配所有远程仓库,repo2除外,使用!将仓库从匹配中排除
  1. 仓库搜索服务,Nexus
    是当前最流行的开源Maven仓库管理软件,Sonatype架设的一个公共Nexue仓库,提供了关键子搜索、类名搜索、坐标搜索、校验和搜索等功能,访问地址:http://repository.sonatype.org
  2. 国内镜像库
    1. 阿里云提供的Maven仓库,地址:http://maven.aliyun.com/nexus/content/groups/public

     
     

笔记:Maven 仓库及配置详解的更多相关文章

  1. 学习笔记——Maven settings.xml 配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...

  2. 学习笔记——Maven pom.xml配置详解

    POM的全称是“ProjectObjectModel(项目对象模型)”. pom.xml详解 声明规范 <projectxmlns="http://maven.apache.org/P ...

  3. maven常用插件配置详解

    常用插件配置详解Java代码    <!-- 全局属性配置 --> <properties> <project.build.name>tools</proje ...

  4. 【转】Maven pom.xml 配置详解

    原文链接:https://yq.aliyun.com/articles/38271 pom.xml文件配置详解 --声明规范 <project xmlns="http://maven. ...

  5. Maven settings.xml配置详解

    首先:Maven中央仓库的搜索全部公共jar包的地址是,http://search.maven.org/ ===Maven基础-默认中央仓库============================== ...

  6. 笔记:Maven 插件及配置详解

    插件使用配置 用户能够自己选择将某个插件目标绑定到生命周期的某个阶段上,例如创建项目的源码JAR包,内置的插件绑定关系并没有涉及这个任务,mavent-source-plugin 可以帮助我们完成该任 ...

  7. (转)Maven pom.xml 配置详解

    背景:maven一直感觉既熟悉又陌生,归根结底还是自己不太熟. 1 什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者 ...

  8. Maven(四-2) Maven pom.xml 配置详解

    转载于:http://niuzhenxin.iteye.com/blog/2042102 什么是pom?    pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述 ...

  9. Maven pom.xml配置详解

    POM的全称是“ProjectObjectModel(项目对象模型)”. 声明规范 <projectxmlns="http://maven.apache.org/POM/4.0.0&q ...

随机推荐

  1. Storm业务功能

    监控平台当前使用storm对日志进行流式分析计算,用于支撑监控数据清洗,后来逐渐在storm上搭建起数据在线关联,数据离线关联,明细数据清洗,日志搜索等功能,本章节对各功能进行简要概述. 对storm ...

  2. Hive分区和桶

    SMB 存在的目的主要是为了解决大表与大表间的 Join 问题,分桶其实就是把大表化成了“小表”,然后 Map-Side Join 解决之,这是典型的分而治之的思想.在聊 SMB Join 之前,我们 ...

  3. Centos中hive/hbase/hadoop/mysql实际操作及问题总结

    目录 Hive中文乱码问题 hive和hbase的版本不一致 Ambari hive插入Hbase出错 Hive0.12和Hbase0.96不兼容,重新编译hive0.12.0 hiveserver不 ...

  4. centos7安装zabbix3.2.4

    系统:CentOS Linux release 7.2.1511 (Core) zabbix:3.2.4 一.yum -y install httpd mysql mysql-server mysql ...

  5. 质量管理:PDCA循环

    PDCA循环又叫质量环,是管理学中的一个通用模型,最早由休哈特于1930年构想,后来被美国质量管理专家戴明博士在1950年再度挖掘出来,并加以广泛宣传和运用于持续改善产品质量的过程.[1] 中文名 P ...

  6. 事件CEvent的使用 .

    CEvent类的一个对象,表示一个"事件"--一个允许一个事件发生时线程通知另一个线程的同步对象.在一个线程需要了解何时执行任务时,事件是十分有用的.例如,拷贝数据到数据文档时,线 ...

  7. R语言︱词典型情感分析文本操作技巧汇总(打标签、词典与数据匹配等)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:情感分析中对文本处理的数据的小技巧要 ...

  8. 利用Eclipse中的Maven构建Web项目(二)

    利用Eclipse中的Maven构建Web项目 1.新建源文件夹,Java Resources鼠标右键,"New-->Source Folder" 2.新建src/main/ ...

  9. 用DataRelation给多个DataTable建立关系并显示到TreeView

    DataRelation 对象执行两种功能: 它可使与正使用的记录相关的记录可用.如果在父记录 (GetChildRows) 中,则它提供子记录:如果正使用子记录 (GetParentRow),则它提 ...

  10. winhex中判断+MBR+DBR+EBR方法

    [/hide] 扇区开始描述). 用 winhex 做U盘免疫AUTO.INF 用WinHex制作无法修改的AutoRun.inf文件 在我们日常工作中,经常需要使用闪存(也称为U盘或者优盘)主要是A ...