Nexus仓库管理服务

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

2、Nexus不是Maven的和性概念,它仅仅是一种衍生出来的特殊Maven仓库
对于Maven来说,仓库只有两种,本地仓库和远程仓库。
2020-09-06
3、本地仓库就使用我们在Maven的settings.xml中配置的本地仓库地址,由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能执行Maven命令的时候下载到需要的构件
4、中央仓库是Maven默认的远程仓库
5、私服的架设在局域网的一种特殊仓库,目的是代理远程仓库及不是第三方构建,为了私服之后,当Maven需要下载构件时,直接请求私服,私服存在剩下下载到本地仓库,否则,私服请求外部远程仓库,将构件下载到私服,在提供本第仓库下载。

6、Nexus功能介绍:
6.1节省外网带宽,大量对于外部仓库的重复请求会消耗带宽,利用私服代理外部仓库,可以消除对外的重复构建下载,降低贷款压力
6.2加速Maven构件,不停的连接请求外部仓库十分耗时,Maven在执行构建的时候不停的检查远程仓库的数据,利用私服,Maven之间差距欲望的数据,提高构建速度。
6.3部署第三方构件,当某个构建无法从任何一个外部远程仓库获得,建立私服之后,便宜可将这些构建部署到私服,供内部的Maven项目使用
6.4提高稳定性,增强控制
Maven构件高度依赖于远程仓库,因此,当网络不稳定的时候,Maven构件也会变得不稳定,基于无法构建,私服缓存了大量的构建,即使暂时没有网络,Maven也可以正常的运行。
6.5降低中一样仓库的复合,使用私服可以避免很多对中央仓库的重复下载,降低中央仓库的压力。

仓库类型说明:
1、默认仓库分类
group(仓库组类型):又叫组类型,用于方便开发人员,自己设定仓库
hosted(宿主类型):内部项目的发布仓库(内部开发人员自己存放的仓库)
proxy(代理类型):从远程仓库中寻找数据的仓库,可以点击对应的仓库的configution页签下Remaote Srorage Location属性的值,即被代理的远程仓库的路
virtual(虚拟类型):虚拟仓库(这个基本用不到)

2、仓库组代理仓库的默认顺序:
Publc Repositories下的仓库

3rd perty:无法从公共仓库获得第三方发布版本构建仓库,及第三方依赖的仓库,这个数据筒仓有内部人员自行下载之后发布上去的。

Apache Snapshots:用了代理ApacheMaven仓库快照版本的构建仓库

Central:用来代理Maven中央仓库发布版本构建的仓库。

Entral M1 shadow:用于提供中央仓库中M1格式中的发布版本中的构建镜像仓库。

Codeluas Snapshots:用来代理CodehausMaven仓库快照版本构建的仓库。

Releases:内部的模块中release模块的发布仓库,用来部署管理内部的发布版本构件的属主类型仓库,release是发布版本。

Snapshots:发布内部的SNAPSHOTS模块的仓库,用来部署管理内部快照版的构件的属主类型的仓库。snapshots是快照版本也是不稳定版本。

所以,自定义构件的仓库组代理仓库的顺序为:Releases-Snapshots-3rd perty-Cantral,也可以把自动宜仓库放到Cantral前面,下载包会更快。

常用使用使用场景(景点)
release发版仓库(nexus默认已建立:maven-release)
Snapshots:测试中心快照仓库(nexus默认已经建立:maven-snapshots)
Central:中央仓库(nexus默认已经建立:maven-central)
关于组:在nexus中可以监理组,将不同类型仓库集合在一起(nexus默认已建立maven-pubilc)
场景一:自定义新建proxy类型仓库,在maven配置中分别配置不同调用地址,或是将滴定仪新建的proxy仓库容易加入一个组,在maven配置中调用一个地址。
场景二:使用maven已经建立好proxy仓库,且使用已建立好的组(maven-pubilc)配置maven调用地址
场景一和场景二本质上讲没有什么变化,根据公司开发习惯和需求进行配置即可。

搭建Nexus
实验环境:Nat模式下的一台虚拟机
实验步骤:

搭建Nexus仓库管理服务
(1)配置Java环境
[[email protected] yfr]# vim /etc/profile 进入系统环境配置文件
export JAVA_HOME=/usr/local/jdk1.8.0_201/
export JRE_HOME=/usr/local/jdk1.8.0_201/jre
export CLASSPATH=JAVAHOME/lib/tools.jar:JAVA_HOME/lib/tools.jar:JAVA_HOME/lib/at.jar
export PATH=JAVAHOME/binJAVA_HOME/bin:JRE_HOME/bin:$PATH

[[email protected] yfr]# tar zxf jdk-8u201-linux-x64.tar.gz -C /usr/local/ 解压Java的包到指定路径
[[email protected] yfr]# . /etc/profile 执行系统环境改变
[[email protected] yfr]# java -version 查看JAVA版本环境信息
openjdk version “1.8.0_102”
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)

(2)安装nexus,并且配置相关参数
[[email protected] ~]# mkdir /usr/local/nexus 创建nexus压缩目录
[[email protected] ~]# tar zxf nexus-3.14.0-04-unix.tar.gz -C /usr/local/nexus/ 解压到指定目录
[[email protected] ~]# ls /usr/local/nexus/ 查看解压后的目录
nexus-3.14.0-04 sonatype-work
[[email protected] ~]# /usr/local/nexus/nexus-3.14.0-04/bin/nexus start 启动
WARNING: ************************************************************
WARNING: Detected execution as “root” user. This is NOT recommended!
WARNING: ************************************************************
Starting nexus
[[email protected] ~]# systemctl stop firewalld
2020-09-06
2020-09-06这个是修改端口的配置文件:
[[email protected] yfr]# vim /usr/local/nexus/nexus-3.14.0-04/etc/nexus-default.properties
各个模块的日志目录:
[[email protected] ~]# ls /usr/local/nexus/sonatype-work/nexus3/log/
jvm.log karaf.log nexus.log request.log

[[email protected] nexus-3.14.0-04]# ls /usr/local/nexus/ 备份目录
sonatype-work

修改nexus初始密码
[[email protected] ~]# vim /usr/local/nexus/sonatype-work/nexus3/db/security/user.pcl

[[email protected] ~]# cd /usr/local/nexus/nexus-3.14.0-04/ 打包
[[email protected] nexus-3.14.0-04]# java -jar ./lib/support/nexus-orient-console.jar
OrientDB console v.2.2.36 (build d3beb772c02098ceaea89779a7afd4b7305d3788, branch 2.2.x) https://www.orientdb.com
Type ‘help’ to display all the supported commands.
orientdb> connect plocal:…/sonatype-work/nexus3/db/security admin admin
orientdb {db=security}> update user SET password="" UPSERT WHERE ID=“admin” 修改密码
Password”shiro1shiro1SHA-51210241024NE+wqQq/TmjZMvfI7ENh/g==$V4yPw8T64UQ6GfJfxYq2hLsVrBY8D1v+bktfOxGdt4b/9BthpWPNUy/CBk6V9iA0nHpzYzJFWO8v/tZFtES8CA==”

创建Roles:
2020-09-06
2020-09-062020-09-062020-09-062020-09-062020-09-06开启
2020-09-062020-09-062020-09-062020-09-06
[[email protected] nexus-3.14.0-04]# ulimit -HSn 65535 设置最大连接数

(3)搭建Maven服务配置相关选项
创建一台maven服务器
[[email protected] ~]# tar xf jdk-8u201-linux-x64.tar.gz -C /usr/local/
[[email protected] ~]# mkdir /usr/local/maven
[[email protected] ~]# tar xf apache-maven-3.6.0-bin.tar.gz -C /usr/local/maven/
[[email protected] ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_201/
export JRE_HOME=/usr/local/jdk1.8.0_201/jre
export CLASSPATH=JAVAHOME/lib/tools.jar:JAVA_HOME/lib/tools.jar:JAVA_HOME/lib/dt.jar
export PATH=JAVAHOME/bin:JAVA_HOME/bin:JRE_HOME/bin:PATHexportMAVENHOME=/usr/local/maven/apachemaven3.6.0/exportPATH=PATH export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.0/ export PATH=JAVA_HOME/bin:JREHOME/bin:JRE_HOME/bin:PATH:$MAVEN_HOME/bin

[[email protected] ~]# . /etc/profile
[[email protected] ~]# vim /usr/local/maven/apache-maven-3.6.0/conf/settings.xml 配置maven
152
153 mirrorId
154 repositoryId
155 Human Readable Name for this Mirror.
156 http://my.repository.com/repo/path
157
158 -->
159
160 nexus-yunanconf
161 nexus-yunanconf
162 http://192.168.0.10:8081/repository/maven-public/
163 *
164
165

254
255 yunanconf
256
257
258
259 nexus
260 http://192.168.0.10:8081/repository/maven-public/
261
262 true
263
264
265 true
266
267
268
269
270
271
272 nexus
273 http://192.168.0.10:8081/repository/maven-public/
274
275 true
276
277
278 true
279
280
281

285
288
289 yunanconf
290
291
292

[[email protected] ~]# mkdir /tmp/test && cd /tmp/test 创建项目目录
[[email protected] test]# mvn archetype:generate -DgroupId=com.wuhao.maven.quickstart -DartifactId=yunanapp -DarchetypeArtifactId=maven-archetype-quickstart 创建项目
[[email protected] test]# cd
[[email protected] ~]# tar xf kgcweb.tar.gz 解压kgcweb包
[[email protected] ~]# cd kgcweb/
[[email protected] kgcweb]# ls 查看解压后的包
pom.xml src
[[email protected] yunanweb]# mvn clean 清理 将编译的结果删除
[[email protected] yunanweb]# mvn pachage 打包将java项目打包
2020-09-06上传到maven-snapshots
[[email protected] kgcweb]# vim pom.xml



nexus
Nexus snapshot
http://192.168.0.10:8081/repository/maven-snapshots


nexus
Nexus releases
http://192.168.0.10:8081/repository/maven-releases



[[email protected] kgcweb]# mvn deploy
2020-09-06更改为上传到maven-releases
[[email protected] kgcweb]# vim pom.xml
1.0
2020-09-06

相关文章:

  • 2021-07-16
猜你喜欢
相关资源
相似解决方案