一. 仓库概念
1. 构件:指的是任何的依赖、插件、项目输出的jar包,都称之为构件
2. 仓库:Maven构件在统一的地方存储,然后供任何Maven项目使用
3. 仓库根据构件的唯一坐标(/groupId/artifactId/version/artifactID-version.packaging)确定唯一的存放地址,这就是仓库的布局
4. 坐标内容包括
- groupId:必选,通常用java包的形式表示(也就是.(点)表示法),内容一般是组织或公司下的某个项目,例如,org.sonatype.nexus,org.sonatype为非盈利组织,nexus为实际项目,与它实际的域名:nexus.sonatype.org对应
- artifactId:必选,项目或模块名,表示实际项目作为前缀,后面跟模块名,例如,nexus-indexer,nexus-core
- version:必选,版本号,通常用两个点表示,例如,1.0.0
- packaging:可选,Maven打包方式,包括:jar(公用库,默认),war(web包)、POM(父模块)
二. 仓库分类
分为本地仓库和远程仓库(远程仓库包括:中央仓库、私服仓库、其他公共库)
1. 本地仓库:非Maven工程的lib目录下一般存放的是公共的jar包,而Maven工程不需要有lib目录,所有的公共jar包都存在在本地仓库
2. 本地仓库的目录:一般在.m2/repository,比如:
而我的本地是在E:\maven_repository,为什么会不一样,这与目录设置有关
3. 本地仓库存放jar包的目录设置
配置文件的路径:D:\program\IntelliJ IDEA 2019.1.3\plugins\maven\lib\maven3\conf\settings.xml
配置项:
<localRepository>E:\maven_repository</localRepository>
4. 构建如何进入本地仓库
(1) 从远程仓库下载
(2) 直接拷贝其他构建到本地仓库,比如项目组内有B依赖A,A又不在远程仓库,那直接把A拷贝到B的本地仓库
1. 远程仓库
2. 超级POM文件
(1) 它是所有Maven项目的最底层POM文件,其他的POM文件都要继承于它
(2) 它定义了默认的中央仓库地址信息
3. 默认的中央仓库地址信息查找方法:maven-model-builder-3.3.9.jar
解压后可以查看仓库地址定义在:
<repositories> <repository> <id>central</id> central:中央仓库唯一标识 <name>Central Repository</name> <url>https://repo.maven.apache.org/maven2</url> URL:中央仓库地址 <layout>default</layout> 默认布局模式(构建查找模式)。根据构件的唯一坐标(/groupId/artifactID/verison/artifactID-version.packaging)确定唯一的存放地址,这就是仓库的布局,注意groupId/artifactID 中的“.”会转换为“/”形成文件路径 <snapshots> <enabled>false</enabled> false:不从中央仓库下载快照true:从中央仓库下载快照 </snapshots> </repository> </repositories>
1. 私服:位于中央仓库之前的直接对接客户端的仓库
原文地址:https://www.cnblogs.com/my_captain/p/12242501.html