1、maven仓库
在Maven的世界里,任何一个依赖、插件、项目构建的输出,都可以成为一个构件。如 log4j-1.2.15.jar依赖是一个构件,maven-compile-pligin-2.0.2.jar插件是一个构件,myapp项目构建完后输出myapp-1.0-SNAPSHOT.war也是一个构件。Maven在某个位置存储所有maven项目共享的构件,这个位置就称为仓库。每一个构件在仓库中都有一个唯一的坐标。
maven是基于简单文件系统存储的,根据依赖生成的路径可以在maven仓库的文件系统找到对应的文件--maven的布局
复制代码
org.testing
testng
5.6
jdk15 注:该项不会出现在依赖申明中,便于举例写于此处
jar
复制代码
查找构件的步骤:
a、基于groupId准备路径,将.转换为/,并在最后添加路径分隔符 -->org/testing
b、基于artifactId准备路径,在前面基础添加artifactId和路径分隔符 -->org/testing/tesng/
c、使用版本信息,在前面基础上添加version和路径分隔符 -->org/testing/tesng/5.6/
d、依次加上artifactId,构建分隔符连字号,以及version -->org/testing/tesng/5.6/tesng-5.6
e、如果有classifier,则添加classifier和 路径分隔符 -->org/testing/tesng/5.6/tesng-5.6-jdk15
f、添加扩展名 -->org/testing/tesng/5.6/tesng-5.6-jdk15.jar
2、仓库的分类
对Maven来说,仓库分为本地仓库和远程仓库。当Maven根据坐标寻找构件的时候,现在本地仓库查找,找到直接使用,否则去远程仓库查找,找到了下载到本地仓库再使用。如果在本地仓库和远程仓库都没有找到,maven会报错。
本地仓库:setting.xml指定本地仓库的路径
远程仓库-中央仓库:maven的默认远程仓库
maven有默认的远程仓库的配置,详见D:\apache-maven-3.5.0\lib\maven-model-builder-3.5.0\org\apache\maven\mode\pom-4.0.0.xml
复制代码
central 中央仓库的唯一标志
Central Repository 可读性名称
https://repo.maven.apache.org/maven2 中央仓库的地址
default 默认布局,1中所示
快照配置
false 失能,表示不从中央仓库下载快照版本的构件
复制代码
远程仓库-私服:架设在局域网内的仓库,代理广域网上的远程仓库,供局域网内的maven用户使用
私服优势:
a、节省外网带宽:减少了大量对远程仓库的重复请求
b、加速maven构建:maven内部机制(如快照更新检查)要求maven执行构建的时候不停地检查远程仓库数据,当配置了很多远程仓库时,构建速度会被大大降低。使用私服maven仅需要检查局域网内私服的数据。
c、部署第三方构件:构件无法从任何远程仓库获取,比如公司内部生成的私有构件,orcale的JDBC由于版权因素无法发布到公共仓库,建立私服后可以将这些构件发布到私服供大家使用
...
3、远程仓库的配置
复制代码
jboss
JBoss Repository
http://repository.jboss.com/maven2
default
true
always 更新策略,never-从不检查更新lalways-每次构建都检查更新;interval:X-每隔X分钟检查一次更新
false
复制代码
远程仓库的认证:
大部分远程仓库不需要认证,部分出于安全考虑,需要认证
复制代码
my-proj
user
passwd
复制代码
认证信息必须配置在setting.xml文件中;id元素的值必须与配置的仓库的id一致
部署到远程仓库:
发布到远程仓库往往需要认证,配置通上。以下配置了稳定版本发布的仓库和快照版本发布的仓库:
复制代码
proj-releases
Tesla Releases
http://192.168.1.1/content/repositories/proj-releases
proj-snapshots
Tesla Snapshots
http://192.168.1.1/content/repositories/proj-snapshots
复制代码
4、镜像
如果仓库A可以提供仓库B的所有内容,那么可以认为A是B的一个镜像。比如:http://maven.net.cn/contents/groups/public是中央仓库http://repol.maven.org/maven2在中国的镜像,由于地理位置的因素,该镜像往往能够提供比中央仓库更快的服务。因此,可以配置maven使用该镜像来替代中央仓库
复制代码
maven.net.cn
Team Nexus Release Mirror
central 表示该配置为central中央仓库的镜像,任何对中央仓库的请求都会转至该镜像
http://maven.net.cn/contents/groups/public
复制代码https://www.cnblogs.com/shixiemayi/p/9532152.html