一、Neuxs介绍

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

为什么要构建Nexus私服?

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

在本地构建Nexus私服的好处:

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

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

二、Nexus 手动安装

安装Neuxs的前置首要条件是存在jdk1.8以上的环境

java 安装

  • 下载jdk
  • 安装java
  • 创建java目录
mkdir /usr/java
  • 解压下载好的文件到 java目录
tar -zxvf server-jre-8u191-linux-x64.tar.gz -C /usr/java/
  • 设置环境变量
vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_191
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
  • 使 /etc/profile 配置文件生效
source /etc/profile

Nexus 安装

  • 下载 Neuxs
wget http://download.sonatype.com/nexus/3/nexus-3.22.1-02-unix.tar.gz
  • 安装Nexus
  • 创建Neuxs安装目录
mkdir -pv /data/nexus
  • 解压到安装目录
tar -zxvf nexus-3.14.0-04-unix.tar.gz -C /data/nexus

解压到安装目录之后,我们可以看到解压后通常有两个目录
| 名称 | 作用 |
| ------------- | :---------------------------------------------------- |
| nexus-x.x.x | Neuxs运行所需要的文件,运行脚本,依赖jar包等 |
| sonatype-work | 该目录包含Nexus生成的配置文件、日志文件、仓库文件等 |

  • 创建 Nexus用户,或者使用root用户也可以
useradd nexus
  • 设置用户环境变量
vim /root/.bashrc

NEXUS_HOME="/data/nexus/nexus-3.14.0-04"
  • 设置nexus启动用户,不设置的话,默认使用root用户
vi $NEXUS_HOME/bin/nexus.rc

#run_as_user=""
run_as_user="root"
  • nexus启动命令加入到system中,centos_6使用下面[Nexus 优化配置](#Nexus 优化配置)中的方式
vi /etc/systemd/system/nexus.service
  [Unit]
  Description=nexus service
  After=network.target
  
  [Service]
  Type=forking
  LimitNOFILE=65536
  ExecStart=/data/nexus/nexus-3.14.0-04/bin/nexus start
  ExecStop=/data/nexus/nexus-3.14.0-04/bin/nexus stop
  User=root
  Restart=on-abort
  
  [Install]
  WantedBy=multi-user.target
  • 修改端口,根据默认修改
cd /data/nexus/nexus-3.14.0-04/etc/
vi nexus-default.properties
...
application-port=8081
application-host=0.0.0.0

- 启动`nexus`并添加开机自启动,`centos_6`使用下面[Nexus 优化配置](#Nexus 优化配置)中的方式

```shell
systemctl start nexus
systemctl enable nexus
  • 访问nexus页面
    访问web页面,默认监听端口为8081,即访问http://localhosts:8081 并使用默认管理员账号admin/admin123登录

出现上图页面,说明配置Nexus成功!点击右上角"Log in",输入默认用户名admin,密码admin123进行登录。

Nexus 优化配置

  • centos_6设置开机自启动,centos_7就按照上方的配置即可
ln -s /data/nexus/nexus-3.14.0-04/bin/nexus /etc/init.d/nexus
chkconfig --add nexus
chkconfig nexus3 on
  • 配置运行用户
    Nexus可以使用root运行,不过官方文档里边不建议使用root来运行,因此使用普通用户来运行
[root@nexus ~]$ useradd nexus
[root@nexus ~]$ cd /data/nexus/nexus-3.14.0-04/bin
[root@nexus bin]$ vim nexus.rc
run_as_uesr="nexus"

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

[root@nexus ~]$ chown -R nexus.nexus /data/nexus/nexus-3.14.0-04
[root@nexus ~]$ chown -R nexus.nexus /data/nexus/sonatype-work
  • 配置jdk如果这里不配置,一般会使用默认的JAVA_HOME的变量,如果系统中有多个,那么可以进行配置
[root@nexus ~]$ cd /data/nexus/nexus-3.14.0-04/bin
[root@nexus bin]$ vim nexus
修改第14行
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/local/jdk1.8.0_144
  • 修改端口
    一般使用默认的,如果需要修改,则更改/data/nexus/nexus-3.14.0-04/etc/nexus-default.properties里边的配置
  • 配置存储及日志位置
[root@nexus bin]$ vim /data/nexus-3.14.0-04/bin/nexus.vmoptions

一般都不做修改,使用默认即可,此处是为了了解这个知识点

-XX:LogFile=../sonatype-work/nexus3/log/jvm.log
-Dkaraf.data=../sonatype-work/nexus3
-Djava.io.tmpdir=../sonatype-work/nexus3/tmp