自动化部署之Maven的私有仓库Nexus

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化部署之Maven的私有仓库Nexus相关的知识,希望对你有一定的参考价值。

1、什么是Nexus?

在前面进行maven项目的构建中,可以看到在构建的过程中需要安装maven的依赖插件,如图:技术分享图片

而在maven的默认配置中是在官网的中央仓库和第三方的maven仓库进行下载,速度偏慢。这里提供阿里云的maven插件库(http://maven.aliyun.com/nexus/#view-repositories),可以在/data/apache-maven-3.5.2/conf/settings.xml 配置文件中进行修改。


在日常的开发构建中,我们也可以自己搭建一个私有的nexus。那么什么是nexus呢?

Nexus是maven的私有仓库;

如果没有nexus,项目的打包都需要在公网下载,不利于包的管理和共用;

如果没有私有仓库,我们所需要的所有构件都需要通过maven的中央仓库和第三方的maven仓库下载到本地,而一个团队的所有人都需要重复地从maven仓库中下载构件。


2、Nexus的安装

(1)下载Nexus
[[email protected] ~]# wget https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.5-02-bundle.tar.gz
--2017-12-25 10:45:42--  https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.5-02-bundle.tar.gz
Resolving sonatype-download.global.ssl.fastly.net (sonatype-download.global.ssl.fastly.net)... 151.101.228.249
Connecting to sonatype-download.global.ssl.fastly.net (sonatype-download.global.ssl.fastly.net)|151.101.228.249|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 73187012 (70M) [application/octet-stream]
Saving to: ‘nexus-2.14.5-02-bundle.tar.gz’
 5% [=======>                                                                                                                                            ] 4,375,805   76.4KB/s  eta 12m 59s

(2)解压Nexus
[[email protected] ~]# tar -zxvf nexus-2.14.5-02-bundle.tar.gz
[[email protected] ~]# mv nexus-2.14.5-02 sonatype-work /data/ 

(3)启动Nexus
[[email protected] ~]# cd /data/nexus-2.14.5-02
[[email protected] nexus-2.14.5-02]# ls
bin  conf  lib  LICENSE.txt  logs  nexus  NOTICE.txt  tmp
[[email protected] nexus-2.14.5-02]# cd bin/
[[email protected] bin]# ./nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
[[email protected] bin]# export RUN_AS_USER=root
[[email protected] bin]# ./nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.
[[email protected] bin]# netstat -tulnp |grep 8081
tcp        0      0 0.0.0.0:8081            0.0.0.0:*               LISTEN      4773/java


(4)浏览器访问仓库
浏览器访问:http://192.168.56.12:8081/nexus,如图:

技术分享图片

点击右上角"login" 默认用户名密码:admin ,admin123

在仓库中,默认会在本地去查找插件,当未发现有插件时,会通过第三方仓库查到,这些仓库的类型都是hosts类型,也就是在本机进行查询。

当本地内未能查找到相应的插件,会通过代理(proxy)类型进行下载插件,配置就在Central——>Remote Storage    Location(回源地址),这里我们填写阿里云的maven远程仓库进行下载

http://maven.aliyun.com/nexus/content/groups/public/

技术分享图片

技术分享图片

配置完成nexus后,在修改maven的settings配置

[[email protected] ~]# vim /data/apache-maven-3.5.2/conf/settings.xml 
将其中的仓库链接地址修改为:
http://192.168.56.12:8081/nexus/content/groups/public/

这样在构建时,首次会从阿里云的maven仓库中下载插件,后面再次重新下载插件时会从本地进行下载。


以上是关于自动化部署之Maven的私有仓库Nexus的主要内容,如果未能解决你的问题,请参考以下文章

Kubernetes 中部署 Maven 私有仓库 Sonatype Nexus3

DevOps之nexus

使用Nexus创建Maven私有仓库

用nexus搭建自己的maven私有仓库

Android 搭建私有maven仓库及上传项目

Android 搭建私有maven仓库及上传项目