Maven - 私服
1. 场景
私服其实就是架设在公司局域网内部的一台服务器,就是一种特殊的远程仓库。A 连接上私服之后,他就可以把jar包直接上传到私服当中。B 团队的所有开发人员也连接同一台私服之后,他们就能根据坐标的信息,直接从私服当中将对应的jar包下载到自己的本地仓库,使用依赖当中所提供的一些工具类了。这样我们就可以通过私服来完成资源的共享。
而如果我们在项目中需要使用其他第三方提供的依赖,如果本地仓库没有,也会自动连接私服下载,如果私服没有,私服此时会自动连接中央仓库,去中央仓库中下载依赖,然后将下载的依赖存储在私服仓库及本地仓库中。
2. 介绍
-
私服:是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的中央仓库,用于解决团队内部的资源共享与资源同步问题。
-
依赖查找顺序:
- 本地仓库
- 私服仓库
- 中央仓库
-
资源上传与下载:
资源的上传与下载,我们需要做三步配置,执行一条指令:
- 在maven的配置文件中配置连接私服的地址(url地址)。
- 在maven的配置文件中配置访问私服的用户名、密码。
- 在项目的pom.xml文件中配置上传资源的位置(url地址)。
配置好了上述三步之后,要上传资源到私服仓库,就执行maven生命周期:deploy
接下来,其他项目组的开发人员就可以在项目中直接通过依赖的坐标,引入对应的依赖。如果此时本地仓库没有,就会自动从私服仓库中下载。
私服仓库说明:
- RELEASE:存储自己开发的RELEASE发布版本的资源。
- SNAPSHOT:存储自己开发的SNAPSHOT发布版本的资源。
- Central:存储的是从中央仓库下载下来的依赖。
项目版本说明:
- RELEASE(发布版本):功能趋于稳定、当前更新停止,可以用于发行的版本,存储在私服中的RELEASE仓库中。
- SNAPSHOT(快照版本):功能不稳定、尚处于开发中的版本,即快照版本,存储在私服的SNAPSHOT仓库中。
3. 私服配置
使用私服,需要在maven的settings.xml配置文件中,做如下配置:
-
需要在 servers 标签中,配置访问私服的个人凭证(访问的用户名和密码)
1
2
3
4
5
6
7
8
9
10<server>
<id>maven-releases</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>maven-snapshots</id>
<username>admin</username>
<password>admin</password>
</server> -
在 mirrors 标签中,配置自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)
1
2
3
4
5<mirror>
<id>maven-public</id>
<mirrorOf>*</mirrorOf>
<url>http://192.168.150.101:8081/repository/maven-public/</url>
</mirror> -
在 profiles 标签中,增加如下配置,来指定snapshot快照版本的依赖允许使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<profile>
<id>allow-snapshots</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>maven-public</id>
<url>http://192.168.150.101:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile> -
如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)
1
2
3
4
5
6
7
8
9
10
11
12<distributionManagement>
<!-- release版本的发布地址 -->
<repository>
<id>maven-releases</id>
<url>http://192.168.150.101:8081/repository/maven-releases/</url>
</repository>
<!-- snapshot版本的发布地址 -->
<snapshotRepository>
<id>maven-snapshots</id>
<url>http://192.168.150.101:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement> -
发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)
评论