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 ...
随机推荐
- openstack使用openvswitch实现vxlan的方法
openstack使用openvswitch实现vxlan,分享给大家,具体如下: openstack环境: 1 版本:ocata 2 系统:ubuntu16.04.2 3 控制节点 1个 + 计算节 ...
- react组件开发规范总结
开发react也有一段时间了,一开始的随手写,生命周期乱用,无状态组件的不熟悉.现在逐渐规范一下,从网上各个地方copy过来,整理出一份文档.可能不全,后续还得多提炼总结和完善. 一.组件内方法书写, ...
- P61 实践作业
网络攻防实验环境搭建 根据链接下载的实验工具包,将其解压 打开VM虚拟机,点击图中红色框,扫描虚拟机 选择文件所在位置 点击下一步,完成.即可 在VM虚拟机设置中把网络适配器修改为桥接模式.如下图 在 ...
- docker学习-lnmp+redis之搭建mysql容器服务
一. 前期准备工作,创建配置文件目录,log文件目录,数据库DATA和WEB站点目录[root@T1 ~]# mkdir -p /lnmp/conf/{mysql,nginx,php} /lnmp/l ...
- react 环境安装
React 使用了ES6标准的JSX(script标签type为text/babel),但目前很多浏览器只支持ES5,所以我们就需要将JSX转成普通JS.在生产环节中,通常直接将JSX编译为JS,但简 ...
- Window上编译最新版libCef(Branch 2704)(转载)
转自http://blog.csdn.net/mfcing/article/details/52066579 1.开发环境搭建 VS2010及以上版本,CMake 2.8.12.1及以上版本.我安 ...
- oracle数据库查询语句case的用法
实现功能: 1.先查询status=2的记录,如果查询到记录则返回第一条记录的Product_Name:2.如果查询不到status=2的记录,则判断status=1的记录是否存在,不存在则返回“请耐 ...
- C#移除URL上指定的参数
/// <summary> /// 移除URL上指定的参数,不区分参数大小写 /// </summary> public static ...
- antd-react-mobile(踩坑记录)
1.按照官网步骤进行, $ npm install -g create-react-app # 注意:工具会自动初始化一个脚手架并安装 React 项目的各种必要依赖,如果在过程中出现网络问题,请尝试 ...
- char* = "name" g++报告warn的原因
char* str = { "abcd" },先定义一个字符串常量“abcd“,再将指针str指向它,返回值是这个指针,由于字符串常量在编译时分配内存,只有程序退出时才被销毁,所以 ...