Maven - 私服

Parker

1. 场景

私服其实就是架设在公司局域网内部的一台服务器,就是一种特殊的远程仓库。A 连接上私服之后,他就可以把jar包直接上传到私服当中。B 团队的所有开发人员也连接同一台私服之后,他们就能根据坐标的信息,直接从私服当中将对应的jar包下载到自己的本地仓库,使用依赖当中所提供的一些工具类了。这样我们就可以通过私服来完成资源的共享。

而如果我们在项目中需要使用其他第三方提供的依赖,如果本地仓库没有,也会自动连接私服下载,如果私服没有,私服此时会自动连接中央仓库,去中央仓库中下载依赖,然后将下载的依赖存储在私服仓库及本地仓库中。

2. 介绍

  • 私服:是一种特殊的远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的中央仓库,用于解决团队内部的资源共享与资源同步问题。

  • 依赖查找顺序

    • 本地仓库
    • 私服仓库
    • 中央仓库
  • 资源上传与下载

    资源的上传与下载,我们需要做三步配置,执行一条指令:

    1. 在maven的配置文件中配置连接私服的地址(url地址)。
    2. 在maven的配置文件中配置访问私服的用户名、密码。
    3. 在项目的pom.xml文件中配置上传资源的位置(url地址)。

    配置好了上述三步之后,要上传资源到私服仓库,就执行maven生命周期:deploy

    接下来,其他项目组的开发人员就可以在项目中直接通过依赖的坐标,引入对应的依赖。如果此时本地仓库没有,就会自动从私服仓库中下载。

    私服仓库说明:

    • RELEASE:存储自己开发的RELEASE发布版本的资源。
    • SNAPSHOT:存储自己开发的SNAPSHOT发布版本的资源。
    • Central:存储的是从中央仓库下载下来的依赖。

    项目版本说明:

    • RELEASE(发布版本):功能趋于稳定、当前更新停止,可以用于发行的版本,存储在私服中的RELEASE仓库中。
    • SNAPSHOT(快照版本):功能不稳定、尚处于开发中的版本,即快照版本,存储在私服的SNAPSHOT仓库中。

3. 私服配置

使用私服,需要在maven的settings.xml配置文件中,做如下配置:

  1. 需要在 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>
  2. 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>
  3. 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>
  4. 如果需要上传自己的项目到私服上,需要在项目的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>
  5. 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)

评论
此页目录
Maven - 私服