maven仓库分类

本地仓库、远程仓库。远程仓库又有私服、中央仓库、其它公共库。中央仓库是maven自带的核心仓库。

仓库配置
远程仓库可以配置多个,超级pom中定义的中央仓库

<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>

以下是jboss远程仓库配置

<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<layout>default</layout>
</repository>
</repositories>

layout标签:使用default仓库布局,仓库布局就是构件在仓库中的存储路径,默认的构件仓库路径如com\juvenxu\mvnbook\hello-world\1.0-SNAPSHOT。maven2、maven3的布局一样,maven1和他们不一样。

<snapshots><enabled>false</enabled></snapshots>:不从该仓库下载快照版本,即不稳定版本SNAPSHOT。
updatePolicy 从远程仓库检查更新的频率,默认值为daily,每天更新一次;never,从不检查;always,每次构建都检查;interval:X,每间隔X分钟检查一次更新。X为任意整数。
checksumPolicy 忽略

maven的setting.xml不支持直接配置repositories和pluginRepositories。所幸maven还提供了profile机制,能让用户将仓库配置放到setting.xml 中的profile里,如下:

<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
<releases>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
<layout>default</layout>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>

当执行maven构建的时候,激活的profile会将仓库配置应用到项目中去。

maven会区别对待依赖的远程仓库与插件远程仓库

插件的仓库使用pluginRepositories来配置,除了pluginRepositories和pluginRepositorie标签不同之外,其余所有子元素和配置依赖仓库完全一样。

私服不是maven的核心概念,它是一种衍生出来的特殊的maven仓库。
maven官方区别依赖仓库和插件仓库,虽然id、url所有的元素值都相同;nexus的 maven-central 代理仓库不区别依赖仓库和插件仓库,从这里即可以下载普通依赖,也可以下载maven插件。

配置镜像
settings文件

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>

该mirrorOf的值为central,表示该配置为中央仓库镜像,任何对于中央仓库的请求都会转至此镜像。

另外三个元素与一般仓库配置无异,表示该镜像仓库的唯一标识符、名称及地址。

镜像一个更常见的用法是结合私服。由私服代理外部的公共仓库,本地配置镜像至私服如下。
<mirror>
  <id>maven-nexus</id>
  <name>this is my nexus</name>
  <url>http://localhost:8081/repository/maven-nexus/</url>
  <mirrorOf>*</mirrorOf>
</mirror>
<mirrorOf>*</mirrorOf> 表示该配置是所有Maven仓库的镜像,对于所有远程仓库的请求都会被转移到http://
<mirrorOf>external:*</mirrorOf> 匹配所有远程仓库,除localhost、file://协议。
<mirrorOf>repo1,repo2</mirrorOf> 匹配仓库1和仓库2
<mirrorOf>*,!repo1</mirrorOf> 匹配所有远程仓库,repo1除外。
由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,maven将无法访问被镜像仓库,无法下载构件。

部署构件至远程仓库
编辑pom文件

<distributionManagement>
<repository>
<id></id>
<name></name>
<url></url>
</repository>
<snapshotRepository>
<id></id>
<name></name>
<url></url>
</snapshotRepository>
</distributionManagement>

repository表示发布版本构件的仓库,后者表示快照版本构件的仓库。

配置后,在命令行运行mvn clear deploy,如果当前项目是快照版本,就部署到快照版本仓库,反之部署到发布版本仓库。

私服、远程仓库、镜像如果需要认证,配置方法都一样。基于仓库或镜像id配置即可。
认证信息必须配置在settings.xml文件中

<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>

这里的id必须和需要认证的仓库或镜像的id一样。

maven 远程仓库、私服及镜像配置的更多相关文章

  1. (十一)Maven远程仓库的各种配置

    1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,访问的人或许很多,有时候也无法满足我们项目的需求,可能项目需要的某些构件中央仓库中是没有的,而在其他 ...

  2. Maven远程仓库的各种配置

    1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,访问的人或许很多,有时候也无法满足我们项目的需求,可能项目需要的某些构件中央仓库中是没有的,而在其他 ...

  3. Maven 教程(11)— Maven远程仓库的各种配置

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79545408 1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库 ...

  4. Maven项目使用Nexus作为远程仓库的settings.xml配置

    Maven项目使用Nexus作为远程仓库的settings.xml配置(转) 在自己电脑C:\Users\hanmm\.m2\下的setting.xml. 1.服务器配置 <server> ...

  5. IntelliJ IDEA配置maven远程仓库

    最近在搭建springMVC+mybatis的框架,在添加jar包的时候出问题了.以前都是直接将jar包放到lib里面即可,但是看到现在用maven的比较多,就去配置maven.然后发现,在添加某个版 ...

  6. Maven远程仓库:pom依赖以及jar包下载

    Maven远程仓库:pom依赖xml配置以及jar包下载: 地址1: http://mvnrepository.com/ 地址2: http://172.16.163.52:8081/nexus/#w ...

  7. Maven远程仓库的配置

    在很多情况下,默认的中央仓库无法满足项目的需求,可能项目需要的构件存在于另外一个远程仓库中,如JBoss Maven仓库.这时,可以在POM中配置该仓库,见代码如下: <!-- 远程仓库的配置 ...

  8. Maven远程仓库的认证

    大部分远程仓库无须认证就可以访问,但有时处于安全方面的考虑,我们需要提供认证信息才能访问一些远程仓库.为了防止非法的仓库访问,管理员为每个仓库提供了一组用户名及密码. 这时,为了能让Maven访问仓库 ...

  9. Maven远程仓库

    根据Apache Maven声明:"只有当在本地和中心仓库找不到所需的依赖文件,才会到远程仓库去下载". 当在Maven里声明了一个本地和中心仓库都没有的库文件时,Maven会停止 ...

随机推荐

  1. Centos7下安装zabbix 3.0.19

    参考网站: https://www.cnblogs.com/xiewenming/p/7732144.html https://www.cnblogs.com/clsn/p/7885990.html  ...

  2. Storm原理及安装

    http://my.oschina.net/leejun2005/blog/147607 http://www.storm-geek.com/forum.php http://www.zhangjih ...

  3. EF基础知识小记三(设计器=>数据库)

    本文主要介绍通过EF的设计器来同步数据库和对应的实体类.并使用生成的实体上下文,来进行简单的增删查该操作 1.通过EF设计器创建一个简单模型 (1).右键目标项目添加新建项 (2).选择ADO.Net ...

  4. HTML编码规范 - 1

    用两个空格来代替制表符(tab) -- 这是唯一能保证在所有环境下获得一致展现的方法. 嵌套元素应当缩进一次(即两个空格). 对于属性的定义,确保全部使用双引号,绝不要使用单引号. 不要在自闭和(se ...

  5. 在Linux系统安装Nodejs最简单步骤

    一.去官网下载和自己系统匹配的文件 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 通过  uname -a ...

  6. 从入门到不放弃系列之Koa2

    一.Koa2入门 本来是想Express入门的,但是既然都是要学,干嘛不学最新的呢? 其实我想说,我本来只是想学个小程序开发,现在已经陆陆续续开了好多坑了.. 本文参考廖雪峰教程 二.Async 最新 ...

  7. NoSQL数据库--简介

    一.What's NoSQL? NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库.这类数据库主要有这些特点:非关系型的.分布式的.开源的.水平可扩展的.原始的目的是为了大规模we ...

  8. 微信公众号H5支付

    微信支付说明1.统一下单接口 统一支付接口: url: https://api.mch.weixin.qq.com/pay/unifiedorder 目的:通过此接口来创建预支付订单,获取订单支付需要 ...

  9. C++ STL使用说明

    标准模板库(Standard Template Library,STL)是一系列通用化组件的集合,包括容器(container).算法(algorithm)和迭代器(iterator). 迭代器ite ...

  10. Node.js之Express二

    好久没写了,今天看博客,觉得有必要把node.js继续写完,善始善终.原本想着把小崔课堂继续讲下去,由于其他原因也就此耽搁下来,看看以后还有没有机会吧.废话不扯,123开始. 一.Exoress之Re ...