一、Neuxs介绍
Nexus
是一个强大的Maven
仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问。
Nexus
是一个强大的Maven
仓库管理器,它极大的简化了本地内部仓库的维护和外部仓库的访问。
如果使用了公共的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私服?
如果没有Neuxs
私服,我们所需的所有构件都需要通过Maven
的中央仓库和第三方的Maven
仓库下载到本地,而一个段对中的所有人都重复的从Maven
仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到Maven
仓库怎么办呢?开发的公共构件怎么让其他项目使用?这个时候我们不得不为自己的团队搭建属于自己的Maven
私服,这样既节省了网络带宽也会加速项目搭建的进程,当然前提条件就是你的私服中拥有项目所需的所有构件。
在本地构建Nexus私服的好处:
- 加速构建;
- 节省带宽;
- 节省中央Maven仓库的带宽;
- 稳定(应付一旦中央服务器出问题的情况);
- 控制和审计;
- 能够部署第三方构件;
- 可以简历本地内部仓库;
- 可以简历公共仓库
这些有点使得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