Maven学习3(中央仓库)
Maven项目在运行的时候,会首先找本地仓库是否有需要的jar,如果没有则去调用远程仓库。
解读Maven在仓库中的存储路径:
1.基于groupId准备路径,将句点分隔符转成路径分隔符,就是将 "." 转换成 "/" ; example: org.testng --->org/testng
2.基于artifactId准备路径,将artifactId连接到后面:org/testng/testng
3.使用version准备路径,将version连接到后面:org/testng/testng/5.8
4.将artifactId于version以分隔符连字号连接到后面:org/testng/testng/5.8/tesng-5.8
5.判断如果构件有classifier,就要在 第4项 后增加 分隔符连字号 再加上 classifier,org/testng/testng/5.8/tesng-5.8-jdk5
6.检查构件的extension,如果extension存在,则加上句点分隔符和extension,而extension是由packing决定的,org/testng/testng/5.8/tesng-5.8-jdk5.jar
maven 仓库 示意图
配置远程仓库(可以在项目的pom.xml中配置 也可以在setting.xml中配置)
当有些构件在中央仓库不存在,必须从其他仓库获取的时候,我们需要在maven项目的pom.xml中 配置一个可以获取到该构件的远程仓库。
配置过程如下:
<!--在pom中配置远程仓库的地址-->
<repositories>
<repository>
<!--仓库id ,必须唯一,否则覆盖原有的仓库-->
<id>jboss</id>
<!--仓库名-->
<name>JBoss repository</name>
<!--远程仓库地址-->
<url>http://repository.jboss.com/maven2/</url>
<releases>
<!--表示允许下载使用发布版本-->
<enabled>true</enabled>
<!--设置从远程更新的频率,默认是daily -->
<!--三种取值 alway 总是更新 never从不更新 interval:X X表示每隔X分钟 -->
<updatePolicy>daily</updatePolicy>
<!--用来配置maven检查校验和文件的策略-->
<!--当构建部署到本地仓库的时候 会同时部署对应的校验和文件-->
<!--有三种取值 ignore 忽略校验 fail 校验失败 停止构建 warm 输出警告信息-->
<checksumPolicy>ignore</checksumPolicy>
</releases>
<!--使用默认的布局-->
<layout>default</layout>
<!--是否允许使用快照版本-->
<snapshots>
<enabled>false</enabled>
<!--设置从远程更新的频率,默认是daily -->
<!--三种取值 alway 总是更新 never从不更新 interval:X X表示每隔X分钟 -->
<updatePolicy>daily</updatePolicy>
<!--用来配置maven检查校验和文件的策略-->
<!--当构建部署到本地仓库的时候 会同时部署对应的校验和文件-->
<!--有三种取值 ignore 忽略校验 fail 校验失败 停止构建 warm 输出警告信息-->
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
</repository>
</repositories>
远程仓库的认证 (在setting.xml中配置)
远程仓库的认证不能像远程仓库的配置一样在pom.xml中进行,需要在setting.xml中配置,因为该项目很可能是大家公用的一个maven项目,而本地仓库是放在本地属于个人。
远程仓库的配置如下:
<servers>
<server>
<!--id名字必须要与pom中配置的远程仓库id一样,这样才可以对立起来-->
<id>jboss</id>
<!--用户名-->
<username>admin</username>
<!--密码-->
<password>1234@qwer</password>
</server>
<servers>
部署项目到远程仓库
我们可以把自己的项目通过maven部署到远程仓库,供自己的同事使用
部署到远程服务器 需要在pom中进行如下配置:
<!--部署到远程仓库-->
<distributionManagement>
<!--发布版本构建的仓库-->
<repository>
<!--远程仓库的id-->
<id>taocodeReleases</id>
<!--构件的名字-->
<name>account-email</name>
<!--要部署的远程仓库地址-->
<url>http://mvnrepo.code.taobao.org/nexus/content/repositories/releases</url>
</repository>
<!--快照版本构建的仓库-->
<snapshotRepository>
<!--远程仓库的id-->
<id>taocodeSnapshots</id>
<!--构件的名字-->
<name>account-email</name>
<!--要部署的远程仓库地址-->
<url>http://mvnrepo.code.taobao.org/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
使用命令:mvn clean deploy
镜像
加入B仓库包含了A仓库的所有服务,那么B就是A 的镜像。
当我们访问处在别的国家的中央仓库的时候没有与网络的限制,下载速度会很慢,所以我们可以使用在国内的中央仓库的镜像 。
镜像配置如下:
<mirrors>
<mirror>
<!--仓库id,如果需要验证 在setting中配置该id的用户名 密码-->
<id>alimaven</id>
<name>aliyun maven</name>
<!--中央仓库的镜像-国内中央仓库的地址-->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<!--中央仓库的id-->
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
为了使用更简单 复杂的需要,<mirrorOf>可以进行如下配置
仓库搜索服务
学会如何使用maven,引入jar 包 是通过使用jar的坐标决定,如何查找jar的坐标,有以下几个网站可以使用
1、https://repository.sonatype.org/ Sonaty Nexus
2、http://mvnrepository.com/ 中央仓库
Maven学习3(中央仓库)的更多相关文章
- 如何发布Maven依赖到中央仓库
平时我们都是从Maven中央仓库下载依赖,如果我们想发布我们自己写的Maven依赖到中央仓库供别人下载使用应该怎么办?这里以上传自己写的simian-maven-plugin(https://gith ...
- Maven的默认中央仓库
当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...
- 【Maven学习】远程仓库的配置
很多情况下,默认的中央仓库无法满足项目的需求,我们可能需要配置新的远程仓库,此时我们可以这样配置: <repository> <id>java-net</id> & ...
- Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载
当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...
- maven学习(2)仓库和配置
1:本地资源库.中央存储库.远程存储库 1.1 本地资源库 当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖需要下载.首先,Maven 将从本地资源库 ...
- 转:Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载
当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...
- maven配置本地仓库、maven配置阿里中央仓库、eclipse配置maven
一.maven配置本地仓库路径 1.打开下载好的maven目录 (若没安装,可以看我写的安装步骤https://www.cnblogs.com/xjd-6/p/11344719.html) 2.进入c ...
- Maven修改默认中央仓库
其实Maven的默认仓库是可以修改的.比如使用阿里云的镜像地址等. 修改步骤: 1.打开{M2_HOME}/conf/settings.xml文件,找到mirrors节点,修改如下代码: <mi ...
- maven阿里云中央仓库
配置 修改maven根目录下的conf文件夹中的setting.xml文件,内容如下: <mirrors> <mirror> <id>alimaven</id ...
- MAVEN 阿里云中央仓库
<mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexu ...
随机推荐
- random-----随机数
1 import random 2 3 print(random.random())#(0,1)----float 大于0且小于1之间的小数 4 5 print(random.randint(1,3) ...
- 模仿input闪烁光标
模仿闪烁的光标 <span class="cursor-blink"> </span> 样式代码: .cursor-blink { display: inl ...
- base64转码,解码方法
function Base64() { // private property _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr ...
- 源码解析之HashMap源码
关于HashMap的源码分析,网上已经有很多写的非常好的文章了,虽然多是基于java1.8版本以下的.Java1.8版本的HashMap源码做了些改进,理解起来更复杂点,但也不脱离其桶+链表或树的重心 ...
- MATLA总结三
1.将分数表示转换为小数表示: vpa( ******(表达式或者变量), n(小数点后几位)) 2.将一个式子中的变量带入具体的值: subs( y, x, [2,3,4] ) 3.用工具箱确定阶 ...
- Tensorflow图像处理以及数据读取
关于tensoflow的图像的处理,看到了一篇文章,个人觉得不错.https://blog.csdn.net/weiwei9363/article/details/79917942
- 区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(更新)
参考链接:https://blog.csdn.net/so5418418/article/details/78355868 https://blog.csdn.net/wgh1015398431/ ...
- DNS 原理
一.DNS 是什么? DNS (Domain Name System 的缩写)的作用非常简单,就是根据域名查出IP地址.你可以把它想象成一本巨大的电话本. 举例来说,如果你要访问域名math.stac ...
- leetcode 1004最大连续1的个数
给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 输入:A = [1,1,1,0,0,0,1,1,1,1,0], ...
- 记录-springcloud -mybatis(代码)
代码部分: 1:pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...