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/ 中央仓库
posted on 2017-04-28 16:44 StringBuilder_Sun 阅读(325) 评论(0) 编辑 收藏 举报