Linux Nexus Repository Manager OSS 3.18.1-01 搭建指南

本文详细介绍如何在内网环境下搭建Nexus私服,包括环境要求、下载与解压、环境变量配置、启动与权限设置等步骤。同时,涵盖批量上传本地仓库的JAR到私服的方法,以及使用Maven进行配置和上传的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为项目需要,需要给开发团队在内网环境下搭建私服,同时完成相关工作笔记本本地maven仓库jar的快速迁移到私服。花了点时间查了网上的相关资料,基本上都能找到相应的内容,本人只是将搭建过程中用到的相关资料做了梳理,方便下次使用。

环境说明

官方系统要求文档

简单概括下

  1. java 版本 要求jdk 1.8+,jvm按需配置,官方系统要求文档里有指导说明
  2. 磁盘空间适当就行,按需配置
  3. 浏览器IE11+,其他火狐、谷歌、Safari、Edge用最新版即可

Setp1 nexus3.18.1-01-unix 下载

官网地址 想要下载更新的版本的可以自行去找最新版本
nexus3.18.1-01-unix 官网下载链接
为了避免下载不了,提供百度网盘下载地址:https://pan.baidu.com/s/1ibe4qkzAa2B-wbMApR0i0w 提取码:c4uq

Setp2 解压

tar -xvf nexus-3.18.1-01-unix.tar.gz

./nexus-3.18.1-01 程序home路径
./sonatype-work 工作目录,包含缓存信息,日志,上传到私服的相关包的信息

Step3 环境变量配置

nexus的环境变量可以不配置,java的参数必须配

vim /etc/profile 
#配置JAVA_HOME和NEXUS_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_181
export NEXUS_HOME=/home/nexus/nexus-3.18.1-01
export PATH=$JAVA_HOME/bin/:$PATH:$NEXUS_HOME/bin;
#完成以后使更改后的文件立即生效
source /etc/profile
#检验配置是否成功
nexus

在这里插入图片描述

Setp4 启动

使用root账号来跑服务,这种情况下会给出一个提醒
[外链图片转存失败(img-M4fvqar3-1567150210496)(./1567075962913.png)]
nexus run

  • 当你不确定环境是否ok时,建议先用这个,会在界面直接打印程序日志。类似java -jar 启动服务,退出当前窗口以后进程被杀死。

nexus start/stop/restart/force-reload

  • 正常后台启动服务**/关闭/重启/** force-reload和restart实际执行的是一样的操作

日志路径:${安装路径}/sonatype-work/nexus3/log/
在这里插入图片描述

Step5 地址和权限配置

访问私服地址

访问地址: http://ip:8081/ 8081是默认程序端口
默认情况下,匿名账号(不登陆)可以查看私服相关仓库的地址信息,可以下载到仓库的jar

admin登陆

从服务器找到admin密码登录。
在这里插入图片描述
初次登录以后让你选择是否做默认事件:

  • 让你修改admin密码
  • 设置是否允许匿名账号(不登陆)访问私服仓库,下载私服的jar

默认建好的仓库

  • maven-releases (Version policy=Release)默认只允许上传不带SNAPSHOT版本尾缀的包,默认部署策略是Disable redeploy 不允许重复上传相同版本号信息的jar,避免包版本更新以后使用方无法获取到最新的包。
  • maven-snapshots (Version policy=Snapshot)只允许上传带SNAPSHOT版本尾缀的包,默认部署策略是Allow redeploy,允许重复上传相同版本号信息的jar,每次上传的时候会在jar的版本号上面增加时间后缀信息。
  • maven-central 中央仓库的拷贝,如果环境可以访问中央仓库,则可以获取到相关的包,否则没用
  • maven-public 仓库组,不是实际个一个仓库地址,只是将现有的组合到一次,可以通过它看到所属组内全部仓库的jar信息
  • 针对当前的情况,需要自建第三方的仓库3rd-party


Version policy 如果选择了Release 或者 Snapshot 就会有上述限制,按需选择

  • 将3rd-party 仓库加到public组

在这里插入图片描述

权限设置

这块权限设计依照经典的权限Role-based Access Control,基于角色的权限控制模型。

  • Privileges 权限信息

目前分为页面编辑部分默认已经建好,而且不允许编辑;仓库部分,默认仓库的相关权限也已经建好,并且不允许编辑,可以针对新建的仓库进行权限的编辑(nexus2.x版本新建仓库代码默认生成view查看权限,其他需要新建)

  • nx-repository-admin 开头的是针对仓库本身的相关权限
  • nx-repository-view 开头的是针对仓库里jar的相关权限
  • Roles 角色信息

角色拥有相应的具体权限,当前服务默认生产两种权限

  • nx-admin 超管权限
  • nx-anonymous 匿名用户权限
  • User 用户,选择分配相应的角色,拥有角色所属的权限

nexus对于上传Upload权限(Privilege name=nx-component-upload)的控制比较特殊,Web网页上只允许针对Version policy!=Snapshot类型的仓库提供操作界面。而且目前该权限无法针对仓库来控制,只要你有这个权限,就可以看到全部允许做Upload操作的仓库,但是可以通过针对仓库包的相关权限来限制


本人按需增加了两个权限

  • nx-develop 开发者( 匿名权限+Snapshots+3rd party类型仓库库的上传权限)
    在这里插入图片描述
  • nx-deployment 运维权限(匿名权限+全类型仓库的上传权限)
    在这里插入图片描述

新增用户以及相关权限演示

  • 新增用户操作界面
    在这里插入图片描述

developer(拥有3rd-party 和 snapshot类型仓库包内容修改的完整权限)

有页面上传的权限,但是没有针对releases仓库的修改权限,这样也无法上传包有页面上传的权限,但是没有针对releases仓库的修改权限,这样也无法上传包
3rd-party 包上传
3rd-party 包删除在这里插入图片描述


deployper(拥有所有类型仓库包内容修改的完整权限)

releases仓库包删除在这里插入图片描述
releases仓库包上传在这里插入图片描述

Step5 批量上传本地jar到私服

借助shell脚本来做相关实现,整体思路就是利用nexus的api结合管道将find 指令查找文件(含路径)列表信息作为参数实现快速完成功能

由于脚本中find 后面使用的是 . 路径,需要进入到jar存放的目录以后去执行脚本,此处的路径为本地仓库地址(目前这部分API没有在nexus的管理后台找到,这块究竟需要什么权限也不明确,目前的developer和deployper都有权限可以做这个事 )

执行脚本
在这里插入图片描述

#!/bin/bash
# copy and run this script to the root of the repository directory containing files
# this script attempts to exclude uploading itself explicitly so the script name is important
# Get command line params
while getopts ":u:p:" opt; do
	case $opt in
		u) USERNAME="$OPTARG"
		;;
		p) PASSWORD="$OPTARG"
		;;
	esac
done
 
#将第三方的包导入3rd-party仓库
find . -type f -not -path './maven-auto-put-to-nexus\.sh*' -not -path '*/\.*' -not -path '*/\^archetype\-catalog\.xml*' -not -path '*/\^maven\-metadata\-local*\.xml' -not -path '*/\^maven\-metadata\-deployment*\.xml' |grep -E 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值