CICD系列(四):maven私服仓库(nexus)搭建及配置

CICD系列(四):maven私服仓库(nexus)搭建及配置

    • 一、相关环境
    • 二、下载nexus
    • 三、创建本地挂载目录并启动
    • 四、配置maven私服
      • 4.1 重置管理员密码
      • 4.2 配置自有仓库
      • 4.3 创建角色
    • 5 本地maven项目配置
      • 5.1 maven settings文件配置
      • 5.1 项目中pom.xml文件配置

一、相关环境

系统:Linux centos 3.10.0-514.26.2.el7.x86_64
Docker 版本:Docker version 18.03.1-ce, build 9ee9f40

二、下载nexus

参考官方说明(https://hub.docker.com/r/sonatype/nexus3/)
找到最新版本:
CICD系列(四):maven私服仓库(nexus)搭建及配置_第1张图片
在机器上下载:

docker pull sonatype/nexus3:3.17.0

CICD系列(四):maven私服仓库(nexus)搭建及配置_第2张图片

三、创建本地挂载目录并启动

# 1. nexus本地挂载目录并分配用户
mkdir /opt/application/nexus-data && chown -R  200 /opt/application/nexus-data

# 2. 启动私服
docker run \
  --restart always \
  -p 8081:8081 \
  -v /opt/application/nexus-data:/nexus-data \
  --network my-overlay \
  --ip 10.11.0.10 \
  --name my-nexus \
  -d sonatype/nexus3:3.17.0

# 3.停止命令
docker stop my-nexus && docker rm my-nexus

四、配置maven私服

4.1 重置管理员密码

  1. 初始的用户名为admin,初始密码在nexus挂载目录中的admin.password文件中
    CICD系列(四):maven私服仓库(nexus)搭建及配置_第3张图片
  2. 使用初始用户登录nexus
    CICD系列(四):maven私服仓库(nexus)搭建及配置_第4张图片
  3. 重置管理员密码
    CICD系列(四):maven私服仓库(nexus)搭建及配置_第5张图片

4.2 配置自有仓库

  1. 新增blob,用于存储仓库文件。也可以直接使用默认的default
    CICD系列(四):maven私服仓库(nexus)搭建及配置_第6张图片
  2. 创建仓库
    仓库分三种类型,一个proxy、一个group、一个hosted。
    Proxy Repository是代理仓库,可以配置多个
    hosted repository为宿主仓库或叫本地仓库,
    group repository 仓库组,将多个仓库合成一个组,查找jar包时,会按照仓库组中的仓库顺序下载jar包。

CICD系列(四):maven私服仓库(nexus)搭建及配置_第7张图片
2.1 创建proxy类型仓库
CICD系列(四):maven私服仓库(nexus)搭建及配置_第8张图片
2.2 配置proxy仓库
CICD系列(四):maven私服仓库(nexus)搭建及配置_第9张图片
2.3. 创建host仓库,此外只创建了一个。可以创建一个releases库,一个snapshots,用于本地上传的release包和snapshots,也可以直接使用默认的maven-releases及maven-snapshots
CICD系列(四):maven私服仓库(nexus)搭建及配置_第10张图片
设置自有仓库的名称存放包的类型、存储位置及更新策略是否允许重新部署等操作
CICD系列(四):maven私服仓库(nexus)搭建及配置_第11张图片
2.4 创建group类型的仓库组,将已有的hosted repositories(宿主仓库)和 proxy repositories(代理仓库)添加进来,注意,hosted在前,proxy在后。这样的话,先在本地创建查找,本地没有再会出代理仓库查找。

CICD系列(四):maven私服仓库(nexus)搭建及配置_第12张图片

4.3 创建角色

  1. 创建可以发布私服的角色,及拥有deploy权限的角色。
    CICD系列(四):maven私服仓库(nexus)搭建及配置_第13张图片

  2. 创建用户将1中的角色赋予该用户
    CICD系列(四):maven私服仓库(nexus)搭建及配置_第14张图片

5 本地maven项目配置

5.1 maven settings文件配置

<!-- servers配置 ->
<servers>
  <!-- 此外的id要与mirror中配置的id保持一致!!!!,否则私服将无法使用 ->
  <server>
      <id>nexusid>
      <username>my-devusername>
      <password>KPsptIPLncS9Gt4XY6BK^ncMtXpassword>
  server>
  <!-- 此外的id要与项目中repository的名称保持一致,否则私服将无法使用!!!! ->
  <server>
      <id>nexus-centralid>
      <username>my-devusername>
      <password>KPsptIPLncS9Gt4XY6BK^ncMtXpassword>
  server>
  <!-- 此外的id要与项目中repository的名称保持一致,否则私服将无法使用!!!! ->
  <server>
      <id>nexus-snapshotsid>
      <username>my-devusername>
      <password>KPsptIPLncS9Gt4XY6BK^ncMtXpassword>
  server>
servers>
<!- mirrors配置 ->
<mirrors>
  <!-- 此外的id要与项目中server的名称保持一致,否则私服将无法使用!!!! ->
  <mirror>
    <id>nexusid>
    <mirrorOf>centralmirrorOf>
    <url>http://****:8081/repository/my_group/url>
  mirror>
mirrors>

5.1 项目中pom.xml文件配置


<distributionManagement>
  <repository>
  <!-- 此外的id要与项目中maven配置文件settings中的server的名称保持一致,否则将无法使用deploy操作!!!! ->
    <id>nexus-centralid>
    <name>libs-releasesname>
    <url>http://****:8081/repository/my_hosted/url>
  repository>
  <snapshotRepository>
    <!-- 此外的id要与项目中maven配置文件settings中的server的名称保持一致,否则将无法使用deploy操作!!!! ->
    <id>nexus-snapshotsid>
    <name>libs-snapshotsname>
    <url>http://****:8081/repository/maven-snapshots/url>
  snapshotRepository>
distributionManagement>

相关阅读:
CICD系列(一):docker环境配置
CICD系列(二):docker swarm集群搭建
CICD系列(三):git搭建及配置

  • 参考:
    Nexus搭建Maven私服全攻略二:安装和配置Nexus3

你可能感兴趣的:(CICD)