docker搭建nexus,springboot+maven+nexus的使用

系列文章目录



前言

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。


一、docker搭建nexus

  1. 拉取镜像
docker pull sonatype/nexus3
  1. 启动容器,这里有几种方式启动,大家可以参考。
#入门级启动
docker run -d -p 8081:8081 --name nexus3 sonatype/nexus3

#docker卷启动 使用 docker 卷。
#由于 docker 卷是持久的,因此可以专门为此目的创建一个卷。这是推荐的方法。
docker volume create --name nexus-data
#(创建的docker卷路径在/var/lib/docker/volumes/nexus-data)
docker run -d -p 8081:8081 --name nexus3 -v nexus-data:/nexus-data sonatype/nexus3

#挂载一个主机目录作为卷。这不是可移植的,因为它依赖于在主机上具有正确权限的现有目录
mkdir -p /some/dir/nexus-data && chown -R 200 /some/dir/nexus-data
docker run -d -p 8081:8081 --name nexus3 -v /some/dir/nexus-data:/nexus-data sonatype/nexus3

#也可以支持jvm参数启动
docker run -d -p 8081:8081 \
--name nexus3 --restart=always --privileged=true \
-e INSTALL4J_ADD_VM_PARAMS="-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/some-other-dir" \
sonatype/nexus3

启动完成之后直接浏览器访问ip:8081端口就可以
nexus3功能介绍

 #查看docker数据卷
docker volume ls
 #删除没使用的数据卷(谨慎使用)
docker volume prune

用户的登录
账户为admin
红线部分为admin密码
进入容器内部

cat /nexus-data/admin.password

红框框就是密码
初次登录之后,系统会提示你修改密码
在这里插入图片描述

二、创建步骤

1.创建仓库

分别创建四个仓库,注意类型为hosted的发行版仓库和快照仓库,proxy为代理仓库,group为公共中央仓库。
分别创建四个仓库

2.快照仓库

hosted改为Disable redeploy
在这里插入图片描述

3.reslease仓库

hosted改为allow redeploy
在这里插入图片描述

3.代理仓库

代理地址改成阿里云仓库地址
http://maven.aliyun.com/nexus/content/groups/public
在这里插入图片描述

3.公共中央仓库

注意这里的顺序修改reslease—》snapshots----》proxy
在这里插入图片描述

三、使用步骤

1.repositories设置

配置这个,拉取jar会从nexus里面拉取,没有的会按照顺序从配置代理仓库中拉取

<repositories>
        <repository>
            <id>boss-maven-proxy</id>
            <name>boss-maven-proxy</name>
            <url>http://10.22.xx.xxx:8081/repository/boss-maven-proxy/</url>
        </repository>
        <repository>
            <id>releases</id>
            <name>Project Releases Repositories</name>
            <url>http://10.22.xx.xxx:8081/repository/boss-maven-release/</url>
        </repository>
        <repository>
            <id>snapshots</id>
            <name>Project Snapshots Repositories</name>
            <url>http://10.22.xx.xxx:8081/repository/boss-maven-snapshots/</url>
        </repository>
    </repositories>

项目的jar包发布
这里配置为发行仓库,和快照仓库。
maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本。如果是快照版本,那么在mvn deploy时会自动发布到快照版本库中,而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。如果是正式发布版本,那么在mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块,在不更改版本号的情况下,编译打包时如果本地已经存在该版本的模块则不会主动去镜像服务器上下载

<distributionManagement>
        <repository>
            <id>boss-nexus-release</id>
            <name>boss-nexus-release</name>
            <url>http://10.22.xx.xxx:8081/repository/boss-maven-release/</url>
        </repository>
        <snapshotRepository>
            <id>boss-nexus-snapshot</id>
            <name>boss-nexus-snapshot</name>
            <url>http://10.22.xx.xxx:8081/repository/boss-maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

maven的setting配置

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	<localRepository>F:\person\repository</localRepository>
	
	<servers>
		<!-- deploy release -->
		<server>
		  <!-- 私服仓库id -->
		  <id>boss-nexus-release</id>
		  <username>admin</username>
		  <password>xxxxx</password>
		</server>
		<!-- deploy snapshot -->
		<server>
		  <id>boss-nexus-snapshot</id>
		  <username>admin</username>
		  <password>xxxxx</password>
		</server>
		<!-- read-only: boss-nexus3 -->
		<server>
		  <id>boss-nexus-public</id> <!-- 对应mirror -> id -->
		  <username>admin</username>
		  <password>xxxxx</password>
		</server>
	</servers>
	
	<mirrors>
		<mirror>
		  <!--此处配置所有的构建均从私有仓库中下载 *代表所有,也可以写central -->
		  <id>boss-nexus-public</id>
		  <name>BOSS Maven Central repository</name>
		  <mirrorOf>*</mirrorOf>
		  <url>http://10.22.xx.xxx:8081/repository/boss-maven-public/</url>
		</mirror>
	</mirrors>
  
	<profiles>
		<profile>
		  <id>boss-nexus3-dev</id>
		  <repositories>
			<repository>
			  <id>boss-maven-public</id>   <!-- 1111, 这里的id需和2222那里的一样,在同一个profile里  -->
			  <url>http://10.22.xx.xxx:8081/repository/boss-maven-public/</url>
			  <releases>
				<enabled>true</enabled>
			  </releases>
			  <snapshots>
				<enabled>true</enabled>
			  </snapshots>
			</repository>
		  </repositories>
		  <pluginRepositories>  <!-- 这里是插件仓库地址 -->
			<pluginRepository>
			  <id>boss-maven-public</id>  <!-- 2222, 这里的id需和1111那里的一样,在同一个profile里  -->
			  <url>http://10.22.xx.xxx:8081/repository/boss-maven-public/</url>
			  <releases>
				<enabled>true</enabled>
			  </releases>
			  <snapshots>
				<enabled>true</enabled>
			  </snapshots>
			</pluginRepository>
		  </pluginRepositories>
		</profile>
	</profiles>
	
	<activeProfiles>
		<!-- 启用id为nexus3的profile的配置 -->
		<activeProfile>boss-nexus3-dev</activeProfile>
	</activeProfiles>
  
</settings>

项目当中执行mvn deploy会将自己的包发布到对应的仓库当中。当然也可以餐区上传的方式进行上传。
在这里插入图片描述


总结

小编自己写的所有文章希望对你有所帮助,更是在自我学习的过程中学习记录的体现,愿我们共同进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spring Boot是一个用于构建Java应用程序的开源框架,它提供了快速、灵活的开发方式,可以快速搭建一个独立运行的应用程序。 Docker是一个开源的容器化平台,可以将应用程序的代码、运行环境和依赖项封装在一个容器中,从而实现跨平台、快速部署的目的。 Nexus是一个用于管理和分发Maven仓库的工具,它提供了一个集中化的存储和访问接口,方便团队协作和版本控制。 综合以上三个工具,我们可以将Spring Boot应用程序使用Docker容器化,并通过Nexus来管理和分发它的依赖项。具体步骤如下: 首先,我们需要使用Spring Boot框架构建一个应用程序,并将其打包成可执行的JAR文件。 然后,我们可以使用Docker来创建一个容器,并将该应用程序的JAR文件添加到容器中。我们可以通过Dockerfile来定义容器的配置和依赖项。 接下来,我们可以使用Nexus来创建一个Maven仓库,并将应用程序的依赖项上传到该仓库。我们可以使用Maven或Gradle来构建应用程序,并在构建过程中将依赖项上传到Nexus。 最后,我们可以使用Docker命令将容器部署到服务器或云平台上,并通过Nexus来管理和分发应用程序的依赖项。这样我们可以快速部署和更新应用程序,同时确保团队成员都使用的是同一个版本的依赖项。 总结来说,Spring Boot、DockerNexus是一些非常有用的工具,可以帮助我们快速构建、部署和管理应用程序。它们的结合使用可以提高开发效率,简化部署过程,并保证应用程序的可靠性和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白努力学java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值