使用Docker快速搭建基于Nexus3的Maven私有仓库

 

 

下载镜像

 docker pull sonatype/nexus3:3.23.0

 

 

运行配置

为了方便管理,使用docker compose。

nexus3/
├── data
├── docker-compose.yml
├── restartup.sh
├── shutdown.sh
└── startup.sh

 

docker-compose.yml

version: '3'
services:

  nexus3:
    image: sonatype/nexus3:3.23.0
    container_name: nexus3
    privileged: true
    cap_add:
      - SYS_PTRACE
    ports:
      - "8088:8081"
    volumes:
      - ./data:/nexus-data
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "5"
  • sonatype/nexus3:3.23.0,镜像及版本
  • container_name,容器名称
  • ports,端口映射,将容器中8081端口映射为对外的宿主机的8088端口
  • volumes,将容器内的“/nexus-data”目录映射为宿主机的与docker-compose.yml同级目录的data目录(确保data目录有读写权限)
  • logging,日志配置

 

启动脚本(startup.sh)

#! /bin/bash
docker-compose up -d

 

停止脚本(shutdown.sh)

#! /bin/bash
docker-compose down

 

重启脚本(restartup.sh)

#! /bin/bash
docker-compose down && docker-compose up -d

 

 

仓库配置

访问地址:http://localhost:8088,默认管理员账号为admin,初始密码在data/admin.password文件中。

 

仓库类型

  1. hosted,本地仓库,通常用于部署、管理公司自己内部的构件。
  2. proxy,代理仓库,用来代理远程的公共仓库,如maven的中央仓库、国内阿里云仓库。
  3. group,仓库组,用来合并多个hosted仓库和proxy仓库,当我们的项目依赖多个仓库下的构件时,通过仓库组只需引用一个group即可。

 

创建本地仓库

假设仓库名称为:spreadk-repository

 

创建代理仓库

比如阿里云仓库,仓库地址为:http://maven.aliyun.com/nexus/content/groups/public/

 

创建仓库组

假设仓库组名称为:spreadk-repo-group

 

安全设置

默认允许匿名访问,即无需认证即可在对应的仓库上上传、下载构件。

 

如果从安全上考虑,需要认证才能访问仓库,则取消勾选“Allow anonymous users to access the server”,然后创建自己的角色和用户。

创建角色

 

创建用户

 

上传构件

通过Nexus界面上传

 

通过maven命令上传

在构件的pom.xml文件中添加如下配置

<!-- 上传到Maven仓库   -->
<distributionManagement>
    <repository>
        <id>spreadk</id>
        <name>spreadk Repository</name>
        <url>http://127.0.0.1:8088/repository/spreadk-repository/</url>
    </repository>
</distributionManagement>

执行如下命令即可将当前构件进行编译、打包,并上传到私服

mvn clean deploy

 

项目中使用私有仓库

如果我们的私有仓库设置了认证,需要在Maven的setting.xml配置文件中添加server节点,设置账号和密码。

 

pom.xml文件配置

  • id要与maven settings.xml文件中server节点下的id保持一致
  • url指定我们搭建的私有仓库的地址
<repositories>
    <repository>
        <id>spreadk</id>
        <name>spreadk Repository</name>
        <url>http://127.0.0.1:8088/repository/spreadk-repository/</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

 

更多:https://www.spreadk.com/#/articles/578082659125825536

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值