Nexus制品库搭建(maven)

Nexus 是一个强大的仓库管理器,它支持多种类型的仓库,包括 Maven、NuGet、PyPI、R、Docker 等。以下是基于Docker搭建 Nexus 3.x 版本的 Maven 制品库搭建步骤:

一.下载镜像

镜像地址及tag查询:https://hub.docker.com/r/sonatype/nexus3/tags(需要魔法)

以下载tag为latest的镜像为例:docker pull sonatype/nexus3:3.66.0

二.创建并运行nexus容器

1.创建容器

新建docker volume:docker volume create nexus-data

启动并运行容器:docker run -d --restart=always -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3:3.66.0

观察容器日志,见到如下日志后nexus即启动成功

如机器内存不足,可调整容器参数

-e INSTALL4J_ADD_VM_PARAMS="-Xms512m -Xmx512m -XX:MaxDirectMemorySize=128m -Djava.util.prefs.userRoot=/nexus-data/javaprefs"

2.容器启动成功后,输入http://ip:8081,见到如下弹框:

admin密码在容器内/nexus-data/admin.password文件中

使用命令进入容器查看/nexus-data/admin.password文件,

docker exec -it /bin/bash nexus

cat /nexus-data/admin.password

3.输入用户名和密码登陆后,需要重新修改admin用户的密码

4.选择是否匿名访问,选择否

三、配置nexus

1.为了便于统一管理,可新建Blob Store

类型选择File,输入名称后Path会自动带出,点击保存,在后续新增repository时选择新建的blob store

2.nexus仓库

①nexus仓库有三种类型:proxy(代理仓库)、hosted(本地仓库)、group(组仓库)

proxy(代理仓库)用于代理远程的公共仓库,用户连接私服,私服自动去中央仓库下载依赖;

hosted(本地仓库)用于部署自己的jar到这个类型的仓库,包括releases和snapshot两部分;

group(组仓库)用于合并多个proxy、hosted仓库,组合对外提供服务;

②以maven仓库为例,新建仓库时指定仓库通用属性,如名称、版本策略(该仓库存储release包、snapshot包还是两种均可存储)、存储位置(选择存储区域,方便文件同一管理)

③对于不同类型的仓库,在新增时需要设置不同的参数

新建proxy代理仓库时,需指定远程存储url:

新建hosted本地仓库时,需指定部署策略:

部署策略主要分3种策略

Allow redeploy:允许同一个版本号重复推送, nexus会以时间进行区分
Disable redeploy:不允许同一个版本号下重复推送
Read-Only:不允许提交任何版本

新建group组仓库时,需指定成员仓库及成员仓库的顺序

四、配置maven

1.maven全局配置settting.xml

配置server与mirror,如果nexus没有开启匿名访问,则server中需要配置账号与密码,server与mirror的id需要一致,此时在idea中编译项目,在代理仓库中能看到已经从中央仓库中拉取了项目所需jar包依赖

<servers>
    <server>  
        <id>custom-proxy</id>  
        <username>xxx</username>  
        <password>xxx</password>  
    </server>   
    <server>  
        <id>custom-hosted</id>  
        <username>xxx</username>  
        <password>xxx</password>  
    </server>
    <server>  
        <id>custom-group</id>  
        <username>xxx</username>  
        <password>xxx</password>  
    </server>   
</servers>

<mirrors>     
    <mirror>  
        <id>custom-group</id>  
        <name>custom-group</name>  
        <url>http://ip:8081/repository/custom-group/</url>  
        <mirrorOf>central</mirrorOf>  
    </mirror>    
</mirrors> 

2.项目pom.xml文件配置

需注意repository的id属性需要与setting.xml中server中的id属性一致

<distributionManagement>
    <repository>
       <id>custom-hosted</id>
       <name>Nexus Hosted Repository</name>
       <url>http://ip:8081/repository/custom-hosted/</url>
    </repository>
</distributionManagement>

此时在idea中deploy后,可看到hosted仓库中已有对应依赖jar包;在开发过程中,可将共用的依赖包上传至nexus私服,其他研发同学可直接依赖私服中的jar模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕玉生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值