二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Nexus系列文章

    • 前言
    • nexus的安装
      • 1,Nexus 介绍。
        • Nexus 是什么?
        • 为什么要构建 Nexus 私服?
      • 2,版本选择及下载。
        • 关于版本选择
        • 关于下载
      • 3,安装 jdk-1.8。
      • 4,部署 nexus。
        • 1,解压。
        • 2,启动。
        • 3,访问。
      • 5,优化配置。
        • 1,设置开机自启。
        • 2,配置运行用户。
        • 3,配置 jdk。
        • 4,修改端口。
        • 5,配置存储及日志位置。
        • 6,启动之后,解决一个小问题。
      • 6,docker 方式安装。
    • 使用nexus3配置docker私有仓库
    • 使用nexus3配置maven私有仓库
    • 使用nexus3配置npm私有仓库
    • 使用nexus3配置yum私有仓库
    • 使用nexus3配置Python私有仓库
    • 使用nexus3配置golang私有仓库
    • maven私服nexus2-14-5迁移到nexus3-7-1
    • maven上传jar包以及SNAPSHOT的一个坑
    • Gradel上传本地包的一些坑及注意点
    • go1-12与1-14之私服使用的差异与变化
    • 通过命令行往python私仓传包
    • 关于yum仓库往nexus私服传包等实践
    • 将maven本地包上传到nexus私服的实践
    • 将npm本地包上传到nexus私服的实践
    • nexus2.x升级到3.x之后仓库地址改变的问题探索
    • 关于gradle中plugins依赖未走私服导致编译失败的原因探析
  • Jenkins系列文章

  • ELK笔记

  • Kubernetes笔记

  • LLM专题

  • 系列专题
  • Nexus系列文章
二丫讲梵
2018-10-16
目录

nexus的安装

文章发布较早,内容可能过时,阅读注意甄别。

# 1,Nexus 介绍。

# Nexus 是什么?

Nexus 是一个强大的 maven 仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。

不仅如此,他还可以用来创建 yum、pypi、npm、docker、nuget、rubygems 等各种私有仓库。

所支持的类型,可从下图管窥:

img

如果使用了公共的 Maven 仓库服务器,可以从 Maven 中央仓库下载所需要的构件(Artifact),但这通常不是一个好的做法。 正常做法是在本地架设一个 Maven 仓库服务器,即利用 Nexus 私服可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个 Artifact。 Nexus 在代理远程仓库的同时维护本地仓库,以降低中央仓库的负荷, 节省外网带宽和时间,Nexus 私服就可以满足这样的需要。 Nexus 是一套 “开箱即用” 的系统不需要数据库,它使用文件系统加 Lucene 来组织数据。 Nexus 使用 ExtJS 来开发界面,利用 Restlet 来提供完整的 REST APIs,通过 m2eclipse 与 Eclipse 集成使用。 Nexus 支持 WebDAV 与 LDAP 安全身份认证。 Nexus 还提供了强大的仓库管理功能,构件搜索功能,它基于 REST,友好的 UI 是一个 extjs 的 REST 客户端,它占用较少的内存,基于简单文件系统而非数据库。

# 为什么要构建 Nexus 私服?

如果没有 Nexus 私服,我们所需的所有构件都需要通过 maven 的中央仓库和第三方的 Maven 仓库下载到本地,而一个团队中的所有人都重复的从 maven 仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到 maven 仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的 maven 私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件。

总之,在本地构建 nexus 私服的好处有:

  1. 加速构建
  2. 节省带宽
  3. 节省中央 maven 仓库的带宽
  4. 稳定(应付一旦中央服务器出问题的情况)
  5. 控制和审计
  6. 能够部署第三方构件
  7. 可以建立本地内部仓库
  8. 可以建立公共仓库

这些优点使得 Nexus 日趋成为最流行的 Maven 仓库管理器。

# 2,版本选择及下载。

# 关于版本选择

以前公司使用的版本一直是用的一个 2.x 的版本,旧的版本各种陈旧,在这种陈旧的情况下,许多地方已经破破烂烂了,比如最重要的功能之一,自动同步远程仓库的依赖,就已经无法使用,看到版本已经更新到 3.x,因此就想着搭一个高版本的来体验一下。

这么一体验,发现这个东东,真真的是一个特别好的利器,神器。

# 关于下载

官网地址:https://www.sonatype.com/

  • 可以直接通过下边链接下载最新版本:https://www.sonatype.com/oss-thank-you-tar.gz
  • 可以通过后边的这个链接选择历史版本:https://help.sonatype.com/repomanager3/download/download-archives—repository-manager-3 (opens new window)

可能一般网络下在浏览器里边下载比较慢,那么可以复制链接用迅雷下载,就会好一些。

接下来开始整个安装的流程介绍,我们先来介绍普通方式的安装。

# 3,安装 jdk-1.8。

nexus 的安装依赖 jdk 环境。最好安装 1.8 版本的,否则可能会遇到其他不可知问题。此安装不再赘述。

我都是通过这种方式安装的curl 192.168.106.10/a | sh,如果看不懂这是什么鬼,可以点击这篇文章了解:构建运维外挂。 (opens new window)

此脚本我已经开源在 GitHub 之中,感兴趣的同学可以点击下边跳转参观。

magic-of-sysuse-scripts

运维外挂小工具

- name: magic-of-sysuse-scripts
  desc: 运维外挂小工具
  avatar: https://avatars2.githubusercontent.com/u/416130?s=460&u=8753e86600e300a9811cdc539aa158deec2e2724&v=4 # 可选
  link: https://github.com/eryajf/magic-of-sysuse-scripts # 可选
  bgColor: "#0074ff" # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
  textColor: "#fff" # 可选,默认var(--textColor)
1
2
3
4
5
6

# 4,部署 nexus。

# 1,解压。

[root@nexus mnt]$tar xf nexus-3.12.1-01-unix.tar.gz
[root@nexus mnt]$ls
nexus-3.12.1-01  nexus-3.12.1-01-unix.tar.gz  sonatype-work
1
2
3

下载到指定目录并解压,我们可以看到解压后有通常两个文件。

nexus-x.x.x Nexus 运行所需要的文件,如运行脚本,依赖 jar 包等
sonatype-work 该目录包含 Nexus 生成的配置文件、日志文件、仓库文件等

# 2,启动。

cd /mnt/nexus-3.12.1-01/bin
./nexus run &
1
2

大概等待一分钟左右,如果在日志输出当中看到如下显示,则说明启动成功。

-------------------------------------------------

Started Sonatype Nexus OSS 3.12.1-01

-------------------------------------------------
1
2
3
4
5

申明

原创文章eryajf,未经授权,严禁转载,侵权必究!此乃文中随机水印,敬请读者谅解。

Copyright 二丫讲梵 (opens new window) 版权所有

# 3,访问。

默认监听端口为8081,默认用户名密码为admin/admin123,因此可以访问以下首页并登陆。

192.168.157.110:8081 (opens new window)

这里直接访问了,一般内部使用,就不开启防火墙神马的了。

img

# 5,优化配置。

# 1,设置开机自启。

ln -s /mnt/nexus-3.12.1-01/bin/nexus /etc/init.d/nexus3
chkconfig --add nexus3
chkconfig nexus3 on
1
2
3

# 2,配置运行用户。

这个地方可以使用 root 运行,不过官方文档里边也不建议使用 root 来运行,因此使用普通用户来运行。

[root@nexus ~]$useradd nexus
[root@nexus bin]$vim nexus.rc

run_as_user="nexus"

配置之后记得更改目录权限,否则下次启动会没有权限。

[root@nexus mnt]$chown -R nexus.nexus /mnt/nexus-3.12.1-01
[root@nexus mnt]$chown -R nexus.nexus /mnt/sonatype-work
1
2
3
4
5
6
7
8
9

# 3,配置 jdk。

如果这里不配置,一般会使用默认的 JAVA_HOME 的变量,如果系统中有多个,那么可以进行配置。

[root@nexus bin]$vim nexus

修改第14行:
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_144
1
2
3
4

# 4,修改端口。

一般使用默认的,如果需要修改,则更改/mnt/nexus-3.12.1-01/etc/nexus-default.properties里边的配置。

这里不做修改了。

# 5,配置存储及日志位置。

[root@nexus bin]$vim /mnt/nexus-3.12.1-01/bin/nexus.vmoptions

一般都不做修改,使用默认即可,这里列出是为了了解这个点。

-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp
1
2
3
4
5
6
7

配置完毕之后,重启一下服务。

# 6,启动之后,解决一个小问题。

img

注意左上角会有一个告警,这个告警的意思是系统默认的最大文件句柄太小了。

解决办法官网也已经给出了:解决文件句柄限制。 (opens new window)

img

因此我们照官方解决办法来做:

echo "nexus  -  nofile 65536" >> /etc/security/limits.conf
1

然后再次重启服务即可。

# 6,docker 方式安装。

最后介绍一些使用 docker 的方式如何安装。

如果想使用 docker 来启动,那么可以参考:官方镜像介绍。 (opens new window)

或用下边方式直接启动。

$ mkdir /mnt/nexus-data
$ docker run -d -p 8081:8081 --name nexus -v --ulimit nofile=65536:65536 /mnt/nexus-data:/nexus-data sonatype/nexus3
1
2
微信 支付宝
#nexus#安装
上次更新: 2024/07/04, 22:40:37
前言
使用nexus3配置docker私有仓库

← 前言 使用nexus3配置docker私有仓库→

最近更新
01
记录二五年五一之短暂回归家庭
05-09
02
学习周刊-总第210期-2025年第19周
05-09
03
学习周刊-总第209期-2025年第18周
05-03
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式