maven 私服详解

私服

总体上来说私服有以下好处:

  • 加速maven构件的下载速度
  • 节省宽带,加速项目构建速度
  • 方便部署自己的构件以供他人使用
  • 提高maven的稳定性,中央仓库需要本机能够访问外网,而如果采用私服的方式,只需要本机可以访问内网私服就可以了

有3种专门的maven仓库管理软件可以用来帮助我们搭建私服

  • Apache基金会的archiva

    http://archiva.apache.org/
    
  • JFrog的Artifactory

    https://jfrog.com/artifactory/
    
  • Sonatype的Nexus

    https://my.sonatype.com/
    

用的最多的是第三种Nexus,本文我们主要以这个来讲解

windows中安装nexus私服

linux中安装nexus私服

Nexus中仓库分类

在这里插入图片描述

代理仓库

代理仓库主要是让使用者通过代理仓库来间接访问外部的第三方远程仓库的,如通过代理仓库访问maven中央仓库、阿里的maven仓库等等。

宿主仓库

宿主仓库主要是给我们自己用的,主要有2点作用

  1. 将私有的一些构件通过nexus中网页的方式上传到宿主仓库中给其他同事使用
  2. 将自己开发好一些构件发布到nexus的宿主仓库中以供其他同事使用
仓库组

maven用户可以从代理仓库和宿主仓库中下载构件至本地仓库,为了方便从多个代理仓库和宿主仓库下载构件,maven提供了仓库组,仓库组中可以有多个代理仓库和宿主仓库,而maven用户只用访问一个仓库组就可以间接的访问这个组内所有的仓库,仓库组中多个仓库是有顺序的,当maven用户从仓库组下载构件时,仓库组会按顺序依次在组内的仓库中查找组件,查找到了立即返回给本地仓库,所以一般情况我们会将速度快的放在前面。

仓库组内部实际上是没有构件内容的,他只是起到一个请求转发的作用,将maven用户下载构件的请求转发给组内的其他仓库处理

配置本地Maven从nexus下载构件

在项目的pom.xml配置方式
<repositories>
    <repository>
        <id>maven-nexus</id>
        <url>http://localhost:8081/repository/maven-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

由于nexus私服需要有用户名和密码登录才能访问,所以需要有凭证,凭证需要在settings.xml文件中配置,在~/.m2/settings.xml文件的servers元素中加入如下内容:

<server>
  <id>maven-nexus</id>
  <username>admin</username>
  <password>admin123</password>
</server>

注意上面的server->id的值和pom.xmlrepository->id的值一致,通过这个id关联找到凭证的。

setting.xml文件 配置方式
  1. setting.xmlmirrors元素中加入如下配置

    <mirror>
      <id>mirror-nexus</id>
      <mirrorOf>*</mirrorOf>
      <name>nexus镜像</name>
      <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>
    

    上面mirrorOf配置的*,说明所有远程仓库都通过该镜像下载构件。
    url:这个为nexus中仓库组的地址

  2. 配置访问凭证

    <server>
      <id>mirror-nexus</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    

    注意上面的server->id的值和pom.xmlrepository->id的值一致,通过这个id关联找到凭证的。

将本地构件发布到私服的2种方式详解

  1. 使用maven部署构件至nexus私服
  2. 手动部署第三方构件至nexus私服:比如我们第三方发给我们的一个包,比如短信发送商的jar包,这个包远程仓库是不存在的,我们要把这个包上传到私服供所有开发使用

nexus私服中存储用户的构件是使用的宿主仓库,nexus私服中提供了两个默认的宿主仓库分别用来存放SNAPSHOT版本和release版本.
在这里插入图片描述
第一步:修改项目中pom.xml的配置,加入下面内容:

<distributionManagement>
    <repository>
        <id>release-nexus</id>
        <url>http://localhost:8081/repository/maven-releases/</url>
        <name>nexus私服中宿主仓库->存放/下载稳定版本的构件</name>
    </repository>
    <snapshotRepository>
        <id>snapshot-nexus</id>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
        <name>nexus私服中宿主仓库->存放/下载快照版本的构件</name>
    </snapshotRepository>
</distributionManagement>

上面2个url分别是上图中两个宿主仓库的地址

第二步:修改settings.xml

<server>
  <id>release-nexus</id>
  <username>admin</username>
  <password>admin123</password>
</server>

<server>
  <id>snapshot-nexus</id>
  <username>admin</username>
  <password>admin123</password>
</server>

注意上面第1个server->id的值需要和pom.xml中的distributionManagement->repository->id的值一致。
第2个server->id的值需要和pom.xml中的distributionManagement->snapshotRepository->id的值一致。

第三步:执行mvn deploy命令

执行这个命令的时候,会对构件进行打包,然后上传到私服中.

参考

私服详解

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值