1. nexus是什么  

Nexus是maven仓库的管理器,如果你使用maven,你可以从maven中央仓库,下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,占用较少的内存,基于简单文件系统而非数据库,这些优点使其日趋称为最流行的maven仓库管理器。

  1. nexus用在哪些场景

1 节省外网带宽。大量对于外部仓库的重复请求会消耗带宽,利用私服代理外部仓库,可以消除对外的重复构件下载,降低带宽的压力。

2 加速maven构建。不停地来连接请求外部仓库十分地耗时,maven在执行构建的时候不停地检查远程仓库地数据。利用私服,maven只检查局域网地数据,提高构建的速度。

3 部署第三方构件(自己开发的)。当某个构件无法从任何一个外部远程仓库获得。建立私服之后,便可以将这些构件部署到私服,供内部地maven项目使用。

4 提高稳定性,增强控制。Maven构建高度依赖于远程仓库,因此,当网路不稳定的时候,maven构建也会变得不稳定,甚至无法构建(对代码进行操作)。私服缓存了大量构件,即使暂时没有网络,maven也可以正常的运行。

5 降低中央仓库的负荷。使用私服可以避免很多对中央仓库的重复下载,降低中央仓库的压力。

  1. nexus仓库的分类

仓库只有两种:本地仓库和远程仓库。

本地仓库就是我们在maven的settings.xml中配置的本地仓库地址。由于最原始的本地仓库时空的,maven必须知道至少一个可用的远程仓库,才能在执行maven命令的时候下载所需要的构件。

中央仓库是maven默认的远程仓库。

私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件,有了私服之后,当maven需要下载构件时,直接请求私服,私服上传在则下载到私服,再提供给本地仓库下载。

  1. nexus的安装

创建一个nexus文件夹

mkdir /usr/local/nexus

tar -zxf nexus-3.14.0-04-unix.tar.gz -C /usr/local/nexus/

/usr/local/nexus/nexus-3.14.0-04/bin/nexus start

python 有 maven python有maven仓库吗_python

 查下端口 (连接外网)

python 有 maven python有maven仓库吗_python 有 maven_02

访问下nexus

Firefox 192.168.1.137:8081 

python 有 maven python有maven仓库吗_python_03

登录

账号:admin 密码:admin123

python 有 maven python有maven仓库吗_maven_04

 

python 有 maven python有maven仓库吗_maven_05

  1. nexus创建角色和用户

创建角色

设置---Roles---Create role---nexus role

python 有 maven python有maven仓库吗_云计算_06

 

python 有 maven python有maven仓库吗_maven_07

 

python 有 maven python有maven仓库吗_python 有 maven_08

 然后查看创建的角色

python 有 maven python有maven仓库吗_开发语言_09

 

python 有 maven python有maven仓库吗_maven_10

 

python 有 maven python有maven仓库吗_python 有 maven_11

 

python 有 maven python有maven仓库吗_开发语言_12

  1. nexus日常维护(修改密码和备份迁移)

首先当我们可以登录到图形管理界面修改密码

python 有 maven python有maven仓库吗_开发语言_13

 

python 有 maven python有maven仓库吗_maven_14

 

python 有 maven python有maven仓库吗_云计算_15

 

python 有 maven python有maven仓库吗_maven_16

 

python 有 maven python有maven仓库吗_云计算_17

如果忘记admin管理员密码登陆不上图形管理页面时

cd /usr/local/nexus/nexus-3.14.0-04/

cd lib/support/

java -jar nexus-orient-console.jar

python 有 maven python有maven仓库吗_开发语言_18

将admin管理员密码修改为默认密码admin123

connect plocal:/usr/local/nexus/sonatype-work/nexus3/db/security admin admin

orientdb {db=security}> update user SET PASSWORD="$shiro1$SHA-512$1024$NE+wqQq/TmjZMvfI7ENh/g==$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==" UPSERT WHERE id="admin"

然后退出exit

python 有 maven python有maven仓库吗_云计算_19

firefox 192.168.1.137:8081再次访问即可

数据的备份迁移

cd /usr/local/nexus/

ls

python 有 maven python有maven仓库吗_云计算_20

将sonatype-work文件复制到别的文件夹即可

4.nexus创建aliyun的代理仓库   加入到组当中

python 有 maven python有maven仓库吗_python 有 maven_21

 

python 有 maven python有maven仓库吗_云计算_22

 

python 有 maven python有maven仓库吗_云计算_23

 

python 有 maven python有maven仓库吗_python 有 maven_24

 

python 有 maven python有maven仓库吗_python_25

 

python 有 maven python有maven仓库吗_python_26

 

python 有 maven python有maven仓库吗_开发语言_27

Ok

5.nexus和maven结合   实现下载的功能

Maven主机192.168.1.136

Nexus:192.168.1.137

在maven主中操作

rm -rf /root/.m2/repository/

vim /usr/local/maven/conf/settings.xml

python 有 maven python有maven仓库吗_云计算_28

python 有 maven python有maven仓库吗_python_29

 

然后cd /usr/test/kgcapp/

mvn clean package (打包)

python 有 maven python有maven仓库吗_python_30

 

python 有 maven python有maven仓库吗_云计算_31

 在nexus主机中查看下

python 有 maven python有maven仓库吗_python_32

 

python 有 maven python有maven仓库吗_maven_33

 

上传在maven主机中修改配置文件

vim /usr/local/maven/conf/settings.xml

python 有 maven python有maven仓库吗_python_34

 

python 有 maven python有maven仓库吗_maven_35

 

python 有 maven python有maven仓库吗_开发语言_36

 

修改玩保存退出

接着去求改上传项目的配置文件

vim pom.xml

python 有 maven python有maven仓库吗_python 有 maven_37

 

python 有 maven python有maven仓库吗_maven_38

 

python 有 maven python有maven仓库吗_python 有 maven_39

 上传成功在nexus主机中查看下(默认上传到maven-snapshots中)

python 有 maven python有maven仓库吗_python_40

 

python 有 maven python有maven仓库吗_云计算_41

 如果将文件上传到maven-reseases中需要在maven主机中修改配置

cd /usr/test/kgcapp/

vim pom.xml修改为:

python 有 maven python有maven仓库吗_开发语言_42

 

python 有 maven python有maven仓库吗_python_43

 

python 有 maven python有maven仓库吗_maven_44

 虽然可以上传到maven-reseases中文件但是如果重复上传同样的文件将会报错

python 有 maven python有maven仓库吗_python 有 maven_45

 

python 有 maven python有maven仓库吗_python_46

 

python 有 maven python有maven仓库吗_maven_47

 

python 有 maven python有maven仓库吗_python 有 maven_48

 成功后 实现重复上传