Nexus3部署、配置+SpringBoot项目Demo

Docker部署Nexus

搜索Nexus3镜像:[root@localhost ~]# docker search nexus

Nexus3部署、配置+SpringBoot项目Demo_第1张图片

拉取Nexus3镜像:[root@localhost ~]# docker pull sonatype/nexus3

Nexus3部署、配置+SpringBoot项目Demo_第2张图片

启动Nexus3前查看虚拟机端口是否被占用:[root@localhost ~]# netstat -nultp

Nexus3部署、配置+SpringBoot项目Demo_第3张图片

通过Docker Hub查看安装步骤

Nexus3部署、配置+SpringBoot项目Demo_第4张图片

 添加docker自启动服务,具体启动命令如下:

docker run -d -p 8081:8081 --restart=always --name nexus sonatype/nexus3

当然也可以通过挂载宿主机方式安装,按需在网上找一些路径。到此安装结束了,登录地址如下:

http://192.168.56.100:8081/

第一次登录需要输入admin密码:

Nexus3部署、配置+SpringBoot项目Demo_第5张图片

命令行登录容器内部: [root@localhost ~]# docker exec -it af765874d009 /bin/bash

cat /nexus-data/admin.password 查看密码。登录之后修改一下密码即可。

配置

仓库-存储配置

导航至 Repository-->Blob Stores,配置对象存储。

default是系统自带默认的,要注意的是这两个存储都需要设置大小限制,否则很容易把硬盘撑爆。

Nexus3部署、配置+SpringBoot项目Demo_第6张图片

仓库-清理策略

导航至 Repository-->Cleanup Policies,配置存储清理策略。

Nexus3部署、配置+SpringBoot项目Demo_第7张图片

仓库-仓库配置

导航至 Repository-->Repositories,配置仓库。

仓库有三种类型,如下:

  • proxy,代理仓库,也就是对外部仓库的代理,这个仓库是只读的,并且可以缓存。
  • hosted,托管仓库,也就是所谓私库了,可以上传包到这个仓库。
  • group,仓库组,这是一个容器,它可以包含多个proxy,hosted或其他group仓库,它的作用就是让开发人员引用的时候只要填一个URL,这也是只读的。

Nexus3部署、配置+SpringBoot项目Demo_第8张图片

proxy如下:Nexus3部署、配置+SpringBoot项目Demo_第9张图片

 hosted如下:

Release 正式版本的 jar 包, POM模块声明的version如果包含snapshot字样则发布到snapshots,否则发布到releases库。例如:1.0.1

Nexus3部署、配置+SpringBoot项目Demo_第10张图片

Snapshot 测试版本 jar 包 ,POM模块声明的version如果包含snapshot字样则发布到snapshots,否则发布到releases库。例如:0.0.1-SNAPSHOT

Nexus3部署、配置+SpringBoot项目Demo_第11张图片

 group仓库如下:

Nexus3部署、配置+SpringBoot项目Demo_第12张图片

Nexus Maven配置说明

  
	 
	
		maven-public
		
		central
		maven-public
		http://192.168.56.100:8081/repository/maven-public/
	

  

Maven的mirrorOf配置

在 maven 的配置文件 setting.xml 中已经配置了 aliyun 仓库,配置如下:


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

默认是所有的请求都会转到阿里云下载,但是有些依赖包又不在 aliyun 仓库,其实开发在pom.xml 是指定了依赖包的仓库地址的,因为以上的配置将所有依赖包的下载都拦截,转到了阿里云,关键就在于 mirroOf 的配置。

以下是关于 mirrorOf 字段的配置

* = 表示拦截所有请求,使用该仓库
external:* = 表示本地仓库的中没有的依赖才会使用该仓库 
central = 表示拦截去中央仓库的请求,使用该仓库
# setting.xml不做任何配置时就是使用的中央仓库,也就是maven官方仓库https://repo.maven.apache.org/maven2
*,!repo_id = 除repo_id这个依赖包外,其他依赖都是用该仓库
repo1,repo2 = 表示只有 repo1 和 repo2 的依赖包才会使用该仓库,会代替pom的配置

开发在 pom 中是配置了依赖包的指定仓库的,如下


	getui-nexus
	http://mvn.gt.igexin.com/nexus/content/repositories/releases/

如果此时 getui-nexus 依赖包无法下载,报错 Cannot resolve com.gexin.platform:gexin-rp-sdk-http:4.1.1.4 ,修改 maven 配置文件。



	aliyun maven
	aliyun
	http://maven.aliyun.com/nexus/content/groups/public/
	*,!getui-nexus     

此时再进行构建,下载 getui-nexus 依赖包则不会从阿里云仓库下载,会从项目的pom里面找仓库下载。

或者



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

Maven访问仓库顺序

本地仓库—>私服(profile)—>远程仓库(repository)—>镜像仓库(mirror)—>中央仓库(central)
简化一下范围,一共分为本地、私服、远程3中仓库类型,远程、镜像、中央仓库都属于时远程仓库优先级为 本地>私服>远程。

Demo提交仓库

利用Spring官网模板创建Springboot项目:

Nexus3部署、配置+SpringBoot项目Demo_第13张图片

Springboot项目pom.xml文件如下:



	4.0.0
	
		org.springframework.boot
		spring-boot-starter-parent
		2.7.14-SNAPSHOT
		 
	
	com.xuhuan
	springboot-demo
	0.0.1-SNAPSHOT
	demo
	Demo project for Spring Boot
	
		1.8
	
	
		
			org.springframework.boot
			spring-boot-starter-web
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
	
	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	
	
		
			false
			maven-releases
			maven-releases
			http://192.168.56.100:8081/repository/maven-releases/
		
		
			false
			maven-snapshots
			maven-snapshots
			http://192.168.56.100:8081/repository/maven-snapshots/
		
	

最后清理,打包,发布到Nexus私服。

Nexus3部署、配置+SpringBoot项目Demo_第14张图片

你可能感兴趣的:(Spring专栏,spring,boot,nexus)