1,Nexus 介绍。

Nexus是什么?

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

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

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

如果使用了公共的 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/

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

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

3,安装jdk-1.8。

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

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

4,部署nexus。

1,解压。

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

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

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

2,启动。

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

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

  1. -------------------------------------------------
  2. Started Sonatype Nexus OSS 3.12.1-01
  3. -------------------------------------------------

3,访问。

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

192.168.157.110:8081

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

5,优化配置。

1,设置开机自启。

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

2,配置运行用户。

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

  1. [root@nexus ~]$useradd nexus
  2. [root@nexus bin]$vim nexus.rc
  3. run_as_user="nexus"
配置之后记得更改目录权限,否则下次启动会没有权限。
  1. [root@nexus mnt]$chown -R nexus.nexus /mnt/nexus-3.12.1-01
  2. [root@nexus mnt]$chown -R nexus.nexus /mnt/sonatype-work

3,配置jdk。

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

  1. [root@nexus bin]$vim nexus
  2. 修改第14行:
  3. INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_144

4,修改端口。

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

这里不做修改了。

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

  1. [root@nexus bin]$vim /mnt/nexus-3.12.1-01/bin/nexus.vmoptions
  2. 一般都不做修改,使用默认即可,这里列出是为了了解这个点。
  3. -XX:LogFile=../sonatype-work/nexus3/log/jvm.log
  4. -Dkaraf.data=../sonatype-work/nexus3
  5. -Djava.io.tmpdir=../sonatype-work/nexus3/tmp

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

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

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

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

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

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

然后再次重启服务即可。

6,docker方式安装。

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

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

或用下边方式直接启动。

    1. $ mkdir /mnt/nexus-data
    2. $ docker run -d -p 8081:8081 --name nexus -v --ulimit nofile=65536:65536 /mnt/nexus-data:/nexus-data sonatype/nexus3

<一>企业级开源仓库nexus实战应用–nexus的安装的更多相关文章

  1. <六>企业级开源仓库nexus3实战应用–使用nexus3配置yum私有仓库

    一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...

  2. <二>企业级开源仓库nexus3实战应用–使用nexus3配置docker私有仓库

    1,安装nexus3. 这个地方略了,安装部署可以参考:nexus3安装配置. 2,配置走起. 1,创建blob存储. 登陆之后,先创建一个用于存储镜像的空间. 定义一个name,下边的内容会自动补全 ...

  3. <三>企业级开源仓库nexus3实战应用–使用nexus3配置maven私有仓库

    一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...

  4. <五>企业级开源仓库nexus3实战应用–使用nexus3配置npm私有仓库

    一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...

  5. Git系列②之部署企业级开源仓库gitlab服务器

    Git系列②之部署企业级开源仓库gitlab服务器 上一篇我们介绍了github的常见使用方法,下面开始部署本地开源仓库gitlab GitLab 是一个用于仓库管理系统的开源项目. 1.安装配置gi ...

  6. Maven之Nexus构建企业级Maven仓库

    什么是Nexus? Nexus是Maven仓库管理器,用来搭建一个本地仓库服务器,这样做的好处是便于管理,节省网络资源,速度快,还有一个非常有用的功能就是可以通过项目的SNAPSHOT版本管理,来进行 ...

  7. Maven实战(Maven+Nexus建立私服【Linux系统】)

    准备工作 下载及配置Maven3:http://www.cnblogs.com/leefreeman/archive/2013/03/05/2944519.html 下载Nexus:http://ne ...

  8. Maven私有仓库-使用docker部署Nexus

    查看官方镜像说明 nexus2 nexus3 建议使用nexus2,可能网上的资料这个版本居多. 我选择的是nexus3,~~~ 启动容器 官方说明中提到的是使用docker直接启动.我选择用dock ...

  9. 项目实战9—企业级分布式存储应用与实战MogileFS、FastDFS

    企业级分布式存储应用与实战-mogilefs 环境:公司已经有了大量沉淀用户,为了让这些沉淀用户长期使用公司平台,公司决定增加用户粘性,逐步发展基于社交属性的多样化业务模式,决定开展用户讨论区.卖家秀 ...

随机推荐

  1. mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享

    摘要: 下文讲述清空数据库中所有表信息的方法分享,如下所示: 实验环境:sql server 2008 实现思路: 1.禁用所有约束,外键 2.禁用所有触发器 3.删除表数据 4.开启触发器 5.开启 ...

  2. location.origin不兼容IE8解决方案

    最近项目中遇到一个问题,在ajax跟后台交互时需要传一个全路径url.项目上线后,在谷歌,火狐,360等浏览器访问一切正常.但唯独IE8下出现问题,提示url:undefined ! 这就尴尬了!!! ...

  3. C#微信支付对接

    c#版在pc端发起微信扫码支付   主要代码: /** * 生成直接支付url,支付url有效期为2小时,模式二 * @param productId 商品ID * @return 模式二URL */ ...

  4. layui中弹出层的两种表达方式

    方式一: 定义js中定义html变量 方式二: 设置div :hidden:hidden 布局 数据表格自适应大小: 代码: <style> .btn-container { margin ...

  5. 为什么不建议在 HBase 中使用过多的列族

    我们知道,一张 HBase 表包含一个或多个列族.HBase 的官方文档中关于 HBase 表的列族的个数有两处描述: A typical schema has between 1 and 3 col ...

  6. python3 今日大纲 day05

    1. 上周内容回顾 1. 闭包: 内层函数对外层函数变量的使用 def outer(): a = 10 def inner(): print(a) return inner ret = outer() ...

  7. Autoware(2)—加载地图数据

    选择Point cloud.Ref选择.autoware/.data/map/pointcloud_map/里面的全选 点Point cloud加载 vector Map和TF同理

  8. 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(为域名申请SSl证书)

    3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(购买域名,域名绑定IP) 然后就是等着..... 假设可以了 咱呢是配置MQTT实现SSL安全加密通信,所以 ...

  9. Nginx(四)------nginx 负载均衡

    在上一篇博客我们介绍了 Nginx 一个很重要的功能——代理,包括正向代理和反向代理.这两个代理的核心区别是:正向代理代理的是客户端,而反向代理代理的是服务器.其中我们又重点介绍了反向代理,以及如何通 ...

  10. .net 信息采集ajax数据

    .net 信息采集ajax数据 关于.net信息采集的资料很多,但是如果采集的网站是ajax异步加载数据的模式,又如何采集呢?今天就把自己做信息采集时,所遇到的一些问题和心得跟大家分享一下. 采集网站 ...