1、中央仓库:这是默认仓库
2、镜像仓库:通过setting.xml中的settings.mirrors.mirror配置
3、全局profile仓库:通过setting.xml中的settings.repositories.repository配置
4、项目仓库:通过pom.xml中的project.repositories.repository配置
5、项目profile仓库:通过pom.xml中的project.profiles.profile.repositories.repository配置
6、本地仓库
搜索顺序如下(优先级):
local_repo > settings_profile_repo > pom_profile_repo > pom_repositorys > settings.mirrors > central
本地仓库 > setting中的多环境 > pom中的多环境 > pom中的全局 > setting中的镜像 > 中央仓库
1、本地仓库
修改本地仓库的位置:修改maven工具的配置文件(maven的安装路径\conf\setting.xml)
步骤:
1)创建一个目录,作为仓库使用。 目录不要有中文和空格。 目录不要太深。
例如: D:\openrepository
2)修改setting.xml文件,指定 D:\openrepository这个目录
2、远程仓库
(1)私服:搭建在局域网环境中,为局域网范围内的所有Maven工程服务
(2)中央仓库:假设在Internet上,为全世界所有Maven工程服务
(3)中央仓库镜像:为了分担中央仓库流量,提升用户访问速度
中央仓库是默认的的远程仓库,Maven在安装的时候,自带的就是中央仓库的配置。
所有的Maven都会继承超级POM,超级POM种包含如下配置:
中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。 还可以在里面配置优先使用的镜像,比如在国内直接连中央仓库速度较慢,一般使用阿里云的镜像仓库。
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。
maven 在默认情况下是从中央仓库下载构建,也就是 id 为 central 的仓库。如果没有特殊需求,一般只需要将私服地址配置为镜像,同时配置其代理所有的仓库就可以实现通过私服下载依赖的功能。镜像配置如下:
启动Docker,输入命令:
输入默认的用户名和密码admin/xxxxxxxx即可登录。进入界面后顶部由2个按钮,分别是仓库和设置。可以看到由4个默认的仓库。
一般来说,Nexus 的仓库分为这么几类:
hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件(如 oracle 的 JDBC 驱动)以及自己或第三方的项目构件;
proxy 代理仓库:代理公共的远程仓库;
group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。
以下为了解,对私服进行权限认证(了解):
大部分公共的远程仓库无须认证就可以直接访问,但我们在平时的开发中往往会架设自己的Maven远程仓库,出于安全方面的考虑,我们需要提供认证信息才能访问这样的远程仓库。 配置认证信息和配置远程仓库不同,远程仓库可以直接在pom.xml中配置,但是认证信息必须配置在settings.xml文件中。这是因为pom往往是被提交到代码仓库中供所有成员访问的,而settings.xml一般只存在于本机。因此,在settings.xml中配置认证信息更为安全
pom.xml文件
<repositories> <repository> <!--仓库 id,repositories 可以配置多个仓库,保证 id 不重复--> <id>nexus</id> <!--仓库地址,即 nexus 仓库组的地址--> <url>http://192.168.120.201:8081/repository/maven-central/</url> <!--是否下载 releases 构件--> <releases> <enabled>true</enabled> </releases> <!--是否下载 snapshots 构件--> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <!--配置插件仓库--> <pluginRepositories> <!-- 插件仓库,maven 的运行依赖插件,也需要从私服下载插件 --> <pluginRepository> <!-- 插件仓库的 id 不允许重复,如果重复后边配置会覆盖前边 --> <id>public</id> <name>Public Repositories</name> <url>http://192.168.120.201:8081/repository/maven-public/</url> </pluginRepository> </pluginRepositories> <!--配置发布构件的仓库,maven deploy操作后,构件会被发布到哪里--> <distributionManagement> <repository> <id>releases</id> <url>http://192.168.120.201:8081/repository/maven-releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://192.168.120.201:8081/repository/maven-snapshots/</url> </snapshotRepository> </distributionManagement>
篇幅较长,分为五篇来记录,其他章节请见:
- 海报