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(中央仓库)的更多相关文章

  1. 如何发布Maven依赖到中央仓库

    平时我们都是从Maven中央仓库下载依赖,如果我们想发布我们自己写的Maven依赖到中央仓库供别人下载使用应该怎么办?这里以上传自己写的simian-maven-plugin(https://gith ...

  2. Maven的默认中央仓库

    当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...

  3. 【Maven学习】远程仓库的配置

    很多情况下,默认的中央仓库无法满足项目的需求,我们可能需要配置新的远程仓库,此时我们可以这样配置: <repository> <id>java-net</id> & ...

  4. Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载

    当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...

  5. maven学习(2)仓库和配置

    1:本地资源库.中央存储库.远程存储库 1.1   本地资源库 当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖需要下载.首先,Maven 将从本地资源库 ...

  6. 转:Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载

    当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...

  7. maven配置本地仓库、maven配置阿里中央仓库、eclipse配置maven

    一.maven配置本地仓库路径 1.打开下载好的maven目录 (若没安装,可以看我写的安装步骤https://www.cnblogs.com/xjd-6/p/11344719.html) 2.进入c ...

  8. Maven修改默认中央仓库

    其实Maven的默认仓库是可以修改的.比如使用阿里云的镜像地址等. 修改步骤: 1.打开{M2_HOME}/conf/settings.xml文件,找到mirrors节点,修改如下代码: <mi ...

  9. maven阿里云中央仓库

    配置 修改maven根目录下的conf文件夹中的setting.xml文件,内容如下: <mirrors> <mirror> <id>alimaven</id ...

  10. MAVEN 阿里云中央仓库

    <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> <name>Nexu ...

随机推荐

  1. Unable to connect to MKS;Too many scoket connect attempts;giving up

    Unable to connect to MKS;Too many scoket connect attempts;giving up(无法连接到MKS;太多scoket连接尝试;放弃) 第一次学习虚 ...

  2. cent os安装filebeat

    先贴一下官方文档https://www.elastic.co/guide/en/beats/filebeat/6.6/filebeat-installation.html 我本次使用rpm的方式安装, ...

  3. hdu2586How far away ?-(LCA)

    http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意:有n个点,有n-1条线连通,求两点间的最短距离,最近公共祖先的入门题.Tarjan离线算法. #in ...

  4. C语言典型编程1

    关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言.同一问题,算法多种 //阶乘运算(有多种编写方式,编程需要看懂,更要打出来)#include ...

  5. Java框架spring 学习笔记(十四):注解aop操作

    回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; ...

  6. “AS3.0高级动画编程”学习:第二章转向行为(下)

    在上一篇里,我们学习了“自主角色”的一些基本行为:寻找(seek).避开(flee).到达(arrive).追捕(pursue).躲避(evade).漫游(wander).这一篇将继续学习其它更复杂, ...

  7. 基于springboot的SSM框架实现返回easyui-tree所需要数据

    1.easyui-tree easui-tree目所需要的数据结构类型如下: [ { "children": [ { "children": [], " ...

  8. 区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(更新)

    参考链接:https://blog.csdn.net/so5418418/article/details/78355868   https://blog.csdn.net/wgh1015398431/ ...

  9. 使用CP进行应用层程序控制

    测试版本:R80.20 Step1:开启软刀片的URL过滤和APP控制,如下图: Step2:编辑访问策略,在层编辑器中勾选刀片的“应用程序和URL过滤”,“内容识别”,如下图: Step3:新建一条 ...

  10. eleTree树形插件引入

    先放一个效果 @eleTree插件官网 刚开始用的xtree,不知为何总是达不到效果,不得已从layui官网插件中寻得这个eleTree插件,看着还不错,用法也简单.不过还是有点坑需要大家注意 开始使 ...