maven 远程仓库、私服及镜像配置
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 远程仓库、私服及镜像配置的更多相关文章
- (十一)Maven远程仓库的各种配置
1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,访问的人或许很多,有时候也无法满足我们项目的需求,可能项目需要的某些构件中央仓库中是没有的,而在其他 ...
- Maven远程仓库的各种配置
1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库,默认的中央仓库访问的速度比较慢,访问的人或许很多,有时候也无法满足我们项目的需求,可能项目需要的某些构件中央仓库中是没有的,而在其他 ...
- Maven 教程(11)— Maven远程仓库的各种配置
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79545408 1.远程仓库的配置 在平时的开发中,我们往往不会使用默认的中央仓库 ...
- Maven项目使用Nexus作为远程仓库的settings.xml配置
Maven项目使用Nexus作为远程仓库的settings.xml配置(转) 在自己电脑C:\Users\hanmm\.m2\下的setting.xml. 1.服务器配置 <server> ...
- IntelliJ IDEA配置maven远程仓库
最近在搭建springMVC+mybatis的框架,在添加jar包的时候出问题了.以前都是直接将jar包放到lib里面即可,但是看到现在用maven的比较多,就去配置maven.然后发现,在添加某个版 ...
- Maven远程仓库:pom依赖以及jar包下载
Maven远程仓库:pom依赖xml配置以及jar包下载: 地址1: http://mvnrepository.com/ 地址2: http://172.16.163.52:8081/nexus/#w ...
- Maven远程仓库的配置
在很多情况下,默认的中央仓库无法满足项目的需求,可能项目需要的构件存在于另外一个远程仓库中,如JBoss Maven仓库.这时,可以在POM中配置该仓库,见代码如下: <!-- 远程仓库的配置 ...
- Maven远程仓库的认证
大部分远程仓库无须认证就可以访问,但有时处于安全方面的考虑,我们需要提供认证信息才能访问一些远程仓库.为了防止非法的仓库访问,管理员为每个仓库提供了一组用户名及密码. 这时,为了能让Maven访问仓库 ...
- Maven远程仓库
根据Apache Maven声明:"只有当在本地和中心仓库找不到所需的依赖文件,才会到远程仓库去下载". 当在Maven里声明了一个本地和中心仓库都没有的库文件时,Maven会停止 ...
随机推荐
- activiti插件安装-离线安装
直接选择离线安装,在线因为网络问题,一直提示失败. 一.下载插件Activiti BPMN 2.0 designer 链接: https://pan.baidu.com/s/1gKBHZFnmNJx7 ...
- wp-postviews使用方法
1.安装 2.头部引用<?php wp_head(); ?> 3.文章调用:<?php if(function_exists('the_views')) { the_views(); ...
- C/C++练习题(三)
1.对下面两个文件编译后,运行会输出什么? // 第一个文件a.c #include <stdio.h> extern char p[]; extern void f(); int mai ...
- 容器挂载volume出现“Permission denied”的问题定位解决
使用如下系统(centos)运行容器后,在容器内的挂载目录内执行ls命令出现了“Permission denied”的错误 Linux localhost.localdomain 3.10.0-862 ...
- 机器学习--降维算法:PCA主成分分析
引言 当面对的数据被抽象为一组向量,那么有必要研究一些向量的数学性质.而这些数学性质将成为PCA的理论基础. 理论描述 向量运算即:内积.首先,定义两个维数相同的向量的内积为: (a1,a2,⋯,an ...
- springboot-25-springboot 集成 ActiveMq
消息的发布有2种形式, 队列式(点对点) 和主题式(pub/sub) 模式, 队列式发布后, 接收者从队列中获取消息后, 消息就会消失, 但任意消费者都可以从队列中接受消息, 消息只能被接受一次 主题 ...
- RabbitMQ上手记录–part 6-Shovel
上一part<RabbitMQ上手记录–part 5-节点集群高可用(多服务器)>讲到了通过多个服务器来搭建RabbitMQ的节点集群,示例当中提到的服务器都是在同一个局域网中的(实际上是 ...
- UIKit 框架之UITableView一
UITableView在开发中是用的最多的控件,它包含两个代理:UITableViewDataSource,UITableViewDelegate,先熟悉下API 1.初始化 - (instancet ...
- Android 蓝牙操作详解
1.启用蓝牙并使设备处于可发现状态 1.1 在使用BluetoothAdapter类的实例进操作之前,应启用isEnable()方法检查设备是否启用了蓝牙适配器. // 使用意图提示 ...
- win10 uwp 商业游戏
本文告诉大家去做一个商业游戏,游戏很简单,几乎没有什么技术 游戏的开始,需要添加框架库,于是引用我自己写的库. 首先是创建一个启动页面,这个页面是显示启动的. 在显示启动的时候,是需要加载游戏需要使用 ...