Nexus是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。Nexus3支持maven、npm、yum、pypi、docker、rubygem等常用软件。
安装Nexus3
环境要求
- Windows / Linux / Mac
- JDK 8+
- Apache Maven 3.0+
安装开始
本次实例的操作系统为:Centos 6.5
$ 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)
解压与配置
点击下载地址,下载最新稳定版,下载完成后,进行解压。
tar -zxvf nexus-3.7.1-02-unix.tar.gz -C /data/nexus-3.7.1/
习惯性修改下文件名
cd /data/nexus-3.7.1/ mv nexus-3.7.1-02/ nexus
修改端口
vim etc/nexus-default.properties
## 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
vim bin/nexus.rc
将运行nexus的用户配置进去
run_as_user="hadoop"
编辑nexus
,修改INSTALL4J_JAVA_HOME_OVERRIDE
的值为JDK1.8的$JAVA_HOME
INSTALL4J_JAVA_HOME_OVERRIDE="/usr/local/java/jdk1.8.0_144"
启动
bin/nexus start (stop/restart...)
此时打开地址http://10.10.202.157:8081
显示如下图
使用用户名/密码 admin/admin123
登录系统后会出现齿轮按钮,可以配置Nexus。如下图
创建代理仓库
点击Repositories
-> Create repositories
,选择maven2(proxy)
,如下图所示:
填入代理仓库地址(此时我们代理阿里云的镜像),如下图:
这里再推荐几个常用的仓库:
- 阿里云 : http://maven.aliyun.com/nexus/content/groups/public
- Spring-Release : http://maven.springframework.org/release/
- cloudera : https://repository.cloudera.com/artifactory/cloudera-repos/
- Jboss : http://repository.jboss.com/maven2/
- jboss-thirdparty-releases : https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/
- jcenter : http://jcenter.bintray.com/
- Spring IO : http://repo.spring.io/libs-release-remote/
点击保存,然后选择maven-public,在Group那里,将左侧的Available
中的仓库列表添加到右侧的Members
中,顺序建议阿里云放第一,因为Maven代理仓库下载顺序是从上往下走的,建议将速度快的仓库放在最前面,如下图所示:
此时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包
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
命令解释: -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