Nexus是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。Nexus3支持maven、npm、yum、pypi、docker、rubygem等常用软件。

安装Nexus3

环境要求

  • Windows / Linux / Mac
  • JDK 8+
  • Apache Maven 3.0+

安装开始

本次实例的操作系统为:Centos 6.5

1
2
3
4
$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

解压与配置

点击下载地址,下载最新稳定版,下载完成后,进行解压。

1
tar -zxvf nexus-3.7.1-02-unix.tar.gz -C /data/nexus-3.7.1/

习惯性修改下文件名

1
2
cd /data/nexus-3.7.1/
mv nexus-3.7.1-02/ nexus

开始配置

修改端口

1
vim etc/nexus-default.properties
1
2
3
4
5
6
7
8
9
10
11
12
## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
##
# Jetty section
application-port=8081 #可修改此端口
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/

# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature

编辑nexus.rc

1
vim bin/nexus.rc 

将运行nexus的用户配置进去

1
run_as_user="hadoop"

编辑nexus,修改INSTALL4J_JAVA_HOME_OVERRIDE的值为JDK1.8的$JAVA_HOME

1
INSTALL4J_JAVA_HOME_OVERRIDE="/usr/local/java/jdk1.8.0_144"

启动

1
bin/nexus start (stop/restart...)

此时打开地址http://10.10.202.157:8081显示如下图
主界面

使用用户名/密码 admin/admin123登录系统后会出现齿轮按钮,可以配置Nexus。如下图
Manager界面

创建代理仓库

点击Repositories -> Create repositories,选择maven2(proxy),如下图所示:
Create repositories
填入代理仓库地址(此时我们代理阿里云的镜像),如下图:
阿里云配置

这里再推荐几个常用的仓库:

点击保存,然后选择maven-public,在Group那里,将左侧的Available中的仓库列表添加到右侧的Members中,顺序建议阿里云放第一,因为Maven代理仓库下载顺序是从上往下走的,建议将速度快的仓库放在最前面,如下图所示:

配置members

此时Maven的代理仓库就已经配置完成,当然也可以自己创建其他的Hosted、Proxy、Group的仓库。

另外补充下其他相关知识:

仓库介绍

代理仓库(Proxy Repository)

顾名思义是代理第三方仓库的,如:

  • maven-central
  • nuget.org-proxy

版本策略(Version Policy):

  • Release: 正式版本
  • Snapshot: 快照版本
  • Mixed: 混合模式

布局策略(Layout Policy):

  • Strict:严格
  • Permissive:宽松

宿主仓库(Hosted Repository)

存储本地上传的组件和资源的,如:

  • maven-releases
  • maven-snapshots
  • nuget-hosted

部署策略(Deployment Policy):

  • Allow Redeploy:允许重新部署
  • Disable Redeploy:禁止重新部署
  • Read-Only:只读

仓库组(Repository Group):
通常包含了多个代理仓库和宿主仓库,在项目中只要引入仓库组就可以下载到代理仓库和宿主仓库中的包,如:

  • maven-public
  • nuget-group

上传第三方JAR包

1
2
3
4
5
6
7
8
mvn deploy:deploy-file 
-DgroupId=com.oracle
-DartifactId=jdbc-oracle-connection
-Dversion=2.2.3
-Dpackaging=jar
-Dfile=~/Document/oracle-2.2.3.jar
-Durl=http://10.10.202.157:8081/repository/maven-3rd/
-DrepositoryId=nexus-releases
1
2
3
4
5
6
7
8
9
命令解释:

-DgroupId=com.oracle                     自定义
-DartifactId=jdbc-oracle-connection            自定义
-Dversion=2.2.3                        自定义 三个自定义,构成pom.xml文件中的坐标
-Dpackaging=jar                       上传的类型是jar类型
-Dfile=~/Document/oracle-2.2.3.jar            jar的本地磁盘位置
-Durl=http://10.10.202.157:8081/repository/maven-3rd/ 私服仓库的地址,
-DrepositoryId=nexus-release                setting.xml文件中配置的ID