【持续集成CI/持续部署CD】二、Docker安装Maven私服Nexus

news2024/11/25 6:39:08

本文是关于通过 Docker 进行安装部署 Nexus3 私服的快速入门和简单使用案例。

一、安装

1. 通过 docker 获取最新版本的 nexus3 镜像

docker pull sonatype/nexus3
创建 docker 镜像到宿主机的磁盘映射目录
Linux:
mkdir -p /home/nexus/data
chmod 777 -R /home/nexus/data
Windows:
手动创建任意文件夹,如:
F:\nexus3\data

2. 启动镜像

通过默认参数值启动镜像
Linux:
docker run -d --name nexus3 -p 8033:8081 --restart always -v /home/nexus/data:/nexus-data sonatype/nexus3
Windows:
docker run -d --name nexus3 -p 8033:8081 --restart always -v F:/nexus3/data:/nexus-data sonatype/nexus3

附带说明(非必要操作,新手可以忽略该步骤):
注:根据需要可以自定义配置参数运行 Nexus 镜像程序
镜像中的默认私服数据持久化目录为/nexus-data
该目录可以通过-Djava.util.prefs.userRoot= N E X U S D A T A / j a v a p r e f s 参数进行配置,将 / n e x u s − d a t a 路径改变为 {NEXUS_DATA}/javaprefs 参数进行配置, 将/nexus-data路径改变为 NEXUSDATA/javaprefs参数进行配置,将/nexusdata路径改变为{NEXUS_DATA}/javaprefs
通过 NEXUS_CONTEXT 变量控制 Nexus Context Path,默认值为 NEXUS_CONTEXT=/
可以按需修改,示例为:NEXUS_CONTEXT=nexus
通过-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m 设置相关服务运行内存
示例:
docker run -d -p 8081:8081 --name nexus3 -e INSTALL4J_ADD_VM_PARAMS="-Xms2703m -Xmx2703m -XX:MaxDirectMemorySize=2703m -Djava.util.prefs.userRoot=/nexus-data2" sonatype/nexus3

3. 获取临时密码进行首次登录,然后默认修改成永久密码

方式(一)通过 docker 命令进入容器获取默认账号 admin 对应的临时登录密码

(1)查找对应容器 id
docker ps -a

(2) 进入容器终端命令行
docker exec -it <容器id> /bin/bash



(3)获取对应目录文件下的 admin 账号的临时密码

cat /nexus-data/admin.password



方式(二)直接到对应镜像映射的磁盘目录上找到对应 admin.password 文件,以文本方式打开查看 admin 账号的临时密码

如本文中将容器的/nexus-data 目录映射到了宿主机磁盘的 F:\nexus3\data 目录,然后以文本文件方式打开 admin.password 查看对应临时密码

4. 输入对应的 Nexus3 私服部署地址进行访问,然后进行修改默认账号 admin 的临时密码。


通过 admin 账号和临时密码进行登录

5. 初次登录成功后,弹出提示操作,根据默认提示,进入到第二步修改 admin 账号的密码为永久





最后,密码修改完成,可以点击右上角 sign out 进行退出重新登录

二、以下为正式使用 Nexus3 私服的过程

1. 创建仓库

2. 选择要创建的仓库类型

3. 对要创建的仓库进行属性

4. 将刚刚创建的仓库添加到公共分组



此处需要注意调整组内不同节点的顺序,对应 jar 包的加载会根据顺序从上到下依次加载,因此建议,私服排最上,公共仓库排最底下。


5. 通过管理面板手动上传 jar 包到私服上



上传成功后,在 browse 界面查看


三、以下为在 IDEA 工具下通过 Maven 自动编译打包将 jar 包自动上传到 Nexus 私服的过程

1. 配置 Maven 的 Settings.xml 文件,添加对应私服的仓库和对应的账号密码

进入 maven 的安装目录 D:\Program Files\apache-maven-3.8.2\conf 中找到 Settings.xml 进行编辑配置


2. 在 servers 标签中添加私服的账号密码,在 mirrors 标签中配置私服的类型和地址

<servers>
  <server>
    <id>gitegg-release</id>
    <username>admin</username>
    <password>admin</password>
  </server>
  <server>
    <id>gitegg-snapshots</id>
    <username>admin</username>
    <password>admin</password>
  </server>
</servers>

<mirrors>
  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
  </mirror>
  <mirror>
    <id>nexus-gitegg</id>
    <url>http://localhost:8033/repository/maven-public/</url>
    <mirrorOf>*</mirrorOf>
  </mirror>
</mirrors>

3. 在项目工程的根 pom.xml 文件中进行发布配置

<project>
  <!--......-->

  <distributionManagement>
    <snapshotRepository>
      <id>gitegg-snapshots</id>
      <url>http://localhost:8033/repository/gitegg-snapshots/</url>
    </snapshotRepository>
    <repository>
      <id>gitegg-release</id>
      <url>http://localhost:8033/repository/gitegg-release/</url>
    </repository>
  </distributionManagement>
</project>

4. 最后通过 IDEA 下 Maven 工具的相关工程 Lifecycle 下的 deploy 选项进行发布到私服

注意:Maven 会自动检测 version 版本号的命名,根据是否包含 SNAPSHOT 关键字进行匹配识别。

当发布 SNAPSHOT 版本时,必须在版本号末尾添加-SNAPSHOT 后缀,然后自动发布到 snapshotRepository 配置节点,示例:2.3.12-SNAPSHOT。

当发布 RELEASE 版本时,只要不带 SNAPSHOT 关键字的均识别为 RELEASE 版本,自动发布到 repository 节点,根据规范建议在 RELEASE 版本中添加.RELEASE 后缀,如 2.3.12.RELEASE。

5. 发布成功后,可在 Browse 对应仓库或者分组中查看到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ThingsBoard的Actor系统如何初始化

1、概述 大家都知道ThingsBoard中使用了Actor,使用这个可以避免多线程并发问题,上一篇我查询资料总结了一下关于Actor的内容,actor不是通过new 一个对象来创建,而是通过一个ActorSystem来创建,下面我将带领大家来学习ThingsBoard启动时Actor如何创建。 2、ThingsBoard的…

【建议收藏】|某大型金融集团内部数据治理实战总结

对于你喜欢的事想去做的事,你必须付出百分之一千的努力你知道这一路可能会有很多困难&#xff0c;会有坚持不下去想要放弃的时候也有时候&#xff0c;你不一定会得到你想要的结果,但你—定要相信。 公众号&#xff1a;857Hub 转发领取PDF全集一份~~~ 数据治理 数字转型&…

传输层协议

目录 传输层 端口号 端口号范围划分 认识知名端口号(Well-Know Port Number) netstat pidof UDP协议UDP协议端格式​编辑 UDP的特点 面向数据报 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 TCP协议 TCP协议段格式 确认应答(ACK)机制 超时重传机制 连…

LDR6020 Type-C PD显示器方案简介

笔记本的视频输出接口一般有VGA、HDMI、DP、Type-C四种。 自从战66一代之后&#xff0c;VGA就基本上已经销声匿迹了&#xff0c;所以目前还是以HDMI和DP接口更为常见。 如果你的笔记本只支持HDMI1.4&#xff0c;那么你外接显示器的上限就只能是2K60或者是1080P144&#xff0c;…

20230522-win11删除文件失败-需要SYSTEM提供的权限

20230522-win11删除文件失败-需要SYSTEM提供的权限 一、软件环境 标签&#xff1a;win11 SYSTEM权限分栏&#xff1a;windows编译器&#xff1a;VS2019 二、问题描述 删除D:\WindowsApps\36186RuoFan.USB_5.8.1.0_x64__q3e6crc0w375t目录下的文件时&#xff0c;提示【文件访…

网络安全合规-数据分类分级具体操作

数据的安全防护&#xff0c;前提在于数据的分级分类。不同类别&#xff0c;不同安全等级的数据&#xff0c;防护手段和要求也是不尽相同的。 数据分类分级整体工作内容&#xff1a; 基础数据资产盘点 通过业务调研及技术探测&#xff0c;对企业的数据库进行全面扫描&#xff0c…

【leetcode】989.数组形式的整数加法

在刷题过程中&#xff0c;遇到此题&#xff0c;自己水平有限做不出来&#xff0c;查看众多题解&#xff0c;找到一个通俗易懂的思路&#xff0c;在此我将分享给大家这个解题过程&#xff01; 题目描述&#xff1a; 整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组…

探索Java面向对象编程的奇妙世界(一)

现实世界中&#xff0c;随处可见的一种事务就是对象&#xff0c;对象是事务存在的实体&#xff0c;如人、书桌、计算机、高楼大厦等。人类解决问题的方式总是将复杂的事务简单化&#xff0c;于是就会思考这些对象都是由哪些部分组成的。下面我来带大家了解面向对象吧。 ⭐ 面向…

Anaconda安装与Python环境搭建

这篇文章介绍了如何安装Anaconda&#xff0c;及Python环境如何配置&#xff0c;你是否还在为难以寻找一篇讲述全面的环境配置博客而苦恼&#xff0c;稍安勿躁&#xff0c;你找对啦&#xff0c;照着本篇文章做下去&#xff0c;你就会发现没那么难呢&#xff01; Anaconda安装 …

记一次 .NET 某汽贸店 CPU 爆高分析

一&#xff1a;背景 1. 讲故事 上周有位朋友在 github 上向我求助&#xff0c;说线程都被卡住了&#xff0c;让我帮忙看下&#xff0c;截图如下&#xff1a; 时隔两年 终于有人在上面提 Issue 了&#xff0c;看样子这块以后可以作为求助专区来使用&#xff0c;既然来求助&…

gulimall-商城业务-商品上架

商城业务 前言一、商品上架1.1 商品 Mapping1.2 商品信息保存到es1.3 es数组的扁平化处理1.4 构造基本数据 前言 本文继续记录B站谷粒商城项目视频 P128-135 的内容&#xff0c;做到知识点的梳理和总结的作用&#xff0c;接口文档地址&#xff1a;gulimall接口文档 一、商品上…

面了个字节拿 30K 出来的测试,让我见识到了什么是测试的天花板

人人都有大厂梦&#xff0c;对于软件测试人员来说&#xff0c;BATJ 为首的一线互联网公司肯定是自己的心仪对象&#xff0c;毕竟能到这些大厂工作&#xff0c;不仅薪资高待遇好&#xff0c;而且能力技术都能够得到提升&#xff0c;最关键的是还能够给自己镀上一层金&#xff0c…

jenkins pipline 拉取git历史版本

声明&#xff0c;本文是基于&#xff1a;jenkins流水线&#xff08;jenkinsfile&#xff09;详解&#xff0c;保姆式教程_我认不到你的博客-CSDN博客&#xff0c;以下内容介绍通过 Commit ID 拉取 git 历史版本 Commit ID &#xff08;节点号&#xff09;是什么&#xff1f;&a…

5G配电网专用工业级路由器(电力紧凑型DTU)-智慧电力物联网

随着近年来智能电网的快速发展&#xff0c;它实现了电力系统的监控、数据、电能的统一化智能管理&#xff0c;通过与5G技术结合&#xff0c;助力构建高可靠、高灵活、高效率的配电网络。 5G网络技术具备低时延传输的特点&#xff0c;满足配电网安全、控制的苛刻要求&#xff0…

软件测试面试一定要准备的7个高频面试题(附答案,建议收藏)

收集了很多人在面试时的面试题后&#xff0c;我特意整理出了7个高频出现的面试题&#xff0c;一起来看看。 高频问题1&#xff1a;请自我介绍下&#xff1f; 高频问题2&#xff1a;请介绍下最近做过的项目&#xff1f; 高频问题3&#xff1a;请介绍下你印象深刻的bug&#xff1…

Android网络握手失败问题分析

问题场景 调用某功能云端接口请求&#xff0c;保存如下信息&#xff1a;Web服务通信期间握手期间远程主机关闭连接 javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake分析 由于同一份代码不同机器有的能调用成功&#xff0c;有的调用失…

C#通用的二进制转化为float和double方法

上一篇&#xff0c;我们将32位二进制【或4个字节】转化为float【Real】小数&#xff0c;这次我们使用通用的方法进行二进制转化。 C#中将32位二进制转换为float【Real】十进制类型_斯内科的博客-CSDN博客 二进制转化float(double)方法: //单精度浮点数对应32位 /…

挖出电商店铺详情数据-API接口分享

在今天的互联网时代&#xff0c;电商平台已经成为了我们生活中不可或缺的一部分。淘宝作为全国最大的电商平台之一&#xff0c;其商品信息也越来越丰富&#xff0c;但是如果你想开发一款能够帮助用户购物的应用程序&#xff0c;就必须获取到淘宝的API接口&#xff0c;才能让你的…

【Webpack】前端工程自动化 - require.context实现模块自动化导入

一、介绍 require.context 是基于 webpack 的一个的 api&#xff0c;主要用来实现模块的自动化导入在前端工程中&#xff0c;如果遇到一个文件需要引入很多模块的情况&#xff0c;可以使用这个apirequire.context 会遍历文件夹中的指定文件&#xff0c;然后自动导入&#xff0…

记一次redis主从切换导致的数据丢失与陷入只读状态故障

背景 最近一组业务redis数据不断增长需要扩容内存&#xff0c;而扩容内存则需要重启云主机&#xff0c;在按计划扩容升级执行主从切换时意外发生了数据丢失与master进入只读状态的故障&#xff0c;这里记录分享一下。 业务redis高可用架构 该组业务redis使用的是一主一从&am…