1、maven仓库
<dependency>
<groupId>org.testing</groupId>
<artifactId>testng</artifactId>
<version>5.6</version>
<classifier>jdk15</classifier> 注:该项不会出现在依赖申明中,便于举例写于此处
<packaging>jar</packaging>
</dependency>
查找构件的步骤:
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会报错。
maven有默认的远程仓库的配置,详见D:\apache-maven-3.5.0\lib\maven-model-builder-3.5.0\org\apache\maven\mode\pom-4.0.0.xml
<repositories>
<repository>
<id>central</id> 中央仓库的唯一标志
<name>Central Repository</name> 可读性名称
<url>https://repo.maven.apache.org/maven2</url> 中央仓库的地址
<layout>default</layout> 默认布局,1中所示
<snapshots> 快照配置
<enabled>false</enabled> 失能,表示不从中央仓库下载快照版本的构件
</snapshots>
</repository>
</repositories>

私服优势:
a、节省外网带宽:减少了大量对远程仓库的重复请求
b、加速maven构建:maven内部机制(如快照更新检查)要求maven执行构建的时候不停地检查远程仓库数据,当配置了很多远程仓库时,构建速度会被大大降低。使用私服maven仅需要检查局域网内私服的数据。
c、部署第三方构件:构件无法从任何远程仓库获取,比如公司内部生成的私有构件,orcale的JDBC由于版权因素无法发布到公共仓库,建立私服后可以将这些构件发布到私服供大家使用
...
3、远程仓库的配置
<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy> 更新策略,never-从不检查更新lalways-每次构建都检查更新;interval:X-每隔X分钟检查一次更新
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
大部分远程仓库不需要认证,部分出于安全考虑,需要认证
<server>
<id>my-proj</id>
<username>user</username>
<password>passwd</password>
</server>
认证信息必须配置在setting.xml文件中;id元素的值必须与配置的仓库的id一致
发布到远程仓库往往需要认证,配置通上。以下配置了稳定版本发布的仓库和快照版本发布的仓库:
<distributionManagement>
<repository>
<id>proj-releases</id>
<name>Tesla Releases</name>
<url>http://192.168.1.1/content/repositories/proj-releases</url>
</repository>
<snapshotRepository>
<id>proj-snapshots</id>
<name>Tesla Snapshots</name>
<url>http://192.168.1.1/content/repositories/proj-snapshots</url>
</snapshotRepository>
</distributionManagement>
4、镜像
如果仓库A可以提供仓库B的所有内容,那么可以认为A是B的一个镜像。比如:http://maven.net.cn/contents/groups/public是中央仓库http://repol.maven.org/maven2在中国的镜像,由于地理位置的因素,该镜像往往能够提供比中央仓库更快的服务。因此,可以配置maven使用该镜像来替代中央仓库
<mirror>
<id>maven.net.cn</id>
<name>Team Nexus Release Mirror</name>
<mirrorOf>central</mirrorOf> 表示该配置为central中央仓库的镜像,任何对中央仓库的请求都会转至该镜像
<url>http://maven.net.cn/contents/groups/public</url>
</mirror>
原文:https://www.cnblogs.com/shixiemayi/p/9532152.html