在ubuntu上搭建nexus私有仓库[失败草稿]

前言

嗯,在内网开发项目时候有需要搭建一个自己的私服maven仓库,下面就说明一下整个步骤。

注意,6年前博主已经写了相关文章了,
微服务架构【技术点2】--- centos+nexus搭建maven私服+idea联合发布使用

这一篇文章就作为更新以及补充说明吧。

在官网下载 neuxs:

bash 复制代码
wget https://sonatype-download.global.ssl.fastly.net/repository/downloads-prod-group/3/nexus-3.67.1-01-unix.tar.gz

我本地下载速度有点慢,看来需要一些科技手段了。

下载完成后,请上传到服务器等待配置:

在服务器上面,解压缩:

bash 复制代码
tar -zxvf nexus-3.67.1-01-unix.tar.gz
ls 
bash 复制代码
------重命名nexus文件夹

mv nexus-3.67.1-01 /usr/local/nexus3
cd /usr/local
创建软连接
sudo ln -s nexus3 nexus
mkdir /usr/local/sonatype-work/

好了,先进行一部分配置:

bash 复制代码
vim bin/nexus.vmoptions
修改一下参数,防止占用内存过大。
如下图:

可以改小一点:

修改默认访问端口以及根目录:

bash 复制代码
vim etc/nexus-default.properties 

注意,默认端口8081很多人用的,使用前请检查一下是否已经占用了:

bash 复制代码
lsof -i:8081

给nexus分配账号:

ps:如果不分配账号那么是无法启动的,例如:

bash 复制代码
创建 nexus 用户
# sudo useradd nexus -M -s /sbin/nologin
注意,这条命令后续会出问题的,在我上一篇文章已经将坑都排出来了:
https://blog.csdn.net/cdnight/article/details/80673110
所以,正式的命令是新建普通的账号:
sudo useradd nexus -m -s /bin/bash
授权
chown -R nexus:nexus /usr/local/nexus
chown -R nexus:nexus /usr/local/sonatype-work/

打开 /usr/local/nexus/bin/nexus.rc 文件, 去掉 run_as_user 变量的注释
sudo vim /usr/local/nexus/bin/nexus.rc
run_as_user="nexus"

好了,测试一下能否正常运行:

bash 复制代码
/usr/local/nexus/bin/nexus run

结果:

这怕不是jdk版本的问题了。。。

经过简单排查,终于发现出问题的地方:

可以得知,在INSTALL4J_ADD_VM_PARAMS 里面有:-Djava.endorsed.dirs=lib/endorsed

这个恰好是报错的点。

然后逐步排查,变量最开始 的变量vmoptions_val,值为:

bash 复制代码
 -Xms512m -Xmx512m -XX:MaxDirectMemorySize=512m -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=../sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../sonatype-work/nexus3 -Dkaraf.log=../sonatype-work/nexus3/log -Djava.io.tmpdir=../sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=lib/endorsed

最后,从nexus脚本的排查结果是:

再查看一下bin/nexus.vmoptions的内容,有:

顺便改改 内存占用:

原来已经说明。。注释部分的在java9+的时候要取消注释,好,改改:

ps2:

有多个jdk的机器需要注意下,

nexus里面有判断jdk的,其中最后会出现:

"$app_java_home/bin/java"

这种形式执行命令--但是app_java_home到底是哪一个jdk我也不清楚--所以我直接都换成 默认的那一个。

怎么做都不行,下面参考一下一位兄弟的文章:
解决Nexus 3.XX Jdk版本问题(亲测有效)

所以,nexus的新版本是真的坑人!!!!

好了,给nexus添加一下系统服务,方便开机启动。

nexus.service

放在:

/lib/systemd/system

目录下,内容:

bash 复制代码
[Unit]
Description=Nexus3服务
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nexus/bin/nexus start
## ExecReload=/usr/local/@projectName@/service.sh restart
ExecStop=/usr/local/nexus/bin/nexus stop
PrivateTmp=True
[Install]
WantedBy=multiVersions-user.target
相关推荐
大耳朵-小飞象9 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技10 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
HLC++10 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室11 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
生活爱好者!13 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
groundhappy14 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
尽兴-14 小时前
企业业务系统架构选型与渐进式演进
运维·系统架构·devops
通信小小昕15 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
壮哥_icon15 小时前
【Android 系统开发】使用 BAT 脚本高效自动化管理 /system/priv-app/ 系统应用(安装与卸载)
android·运维·自动化
RD_daoyi15 小时前
外链权重暴跌至13%,品牌提及反超传统链接——2026年不做Digital PR,你的独立站等于隐形
运维·网络·学习·机器学习·搜索引擎