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

news/2024/11/17 1:50:00/

本文是关于通过 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.ppmy.cn/news/163727.html

相关文章

2.java容器、多线程、JVM、类加载总结

Java基础知识 文章目录 Java基础知识一、容器&队列&栈1、List 容器ImmutableList&#xff1a;不可变列表&#xff0c;任何的 remove&#xff0c;add 方法都会抛出异常。2、Map 容器3、Queue 队列4、Set 容器5、Stack 栈 二、多线程1、线程管理2、同步器3、信号量4、并发…

常见硬件术语手册

一、CPU术语解释        3DNow!&#xff1a; (3D no waiting)AMD公司开发的SIMD指令集&#xff0c;可以增强浮点和多媒体运算的速度&#xff0c;它的指令数为21条。        ALU&#xff1a; (Arithmetic Logic Unit&#xff0c;算术逻辑单元)在处理器之中用于计算的…

常用电脑硬件技术术语集锦

主板篇 芯片组&#xff1a;芯片组是主板的灵魂&#xff0c;它决定了主板所能够支持的功能。目前市面上常见的芯片组有Intel、VIA、SiS、Ali、AMD等几家公司的产品。其中&#xff0c;Intel公司的主流产品有440BX、i820、i815/815E等。VIA公司主要有VIA Apollo Pro 133/133A、KT …

计算机常见术语解释

一、CPU术语解释     3DNow!&#xff1a; (3D no waiting)AMD公司开发的SIMD指令集&#xff0c;可以增强浮点和多媒体运算的速度&#xff0c;它的指令数为21条。     ALU&#xff1a; (Arithmetic Logic Unit&#xff0c;算术逻辑单元)在处理器之中用于计算的那一部分&…

常见驱动程序相关知识

http://www.cntuw.com/simple/?t20270.html 2、驱动程序安我家(1) 何为驱动有人没有特意安装过驱动程序&#xff0c;但电脑依旧可以使用。其实那只是一种假相&#xff1a;高版本的Windows光盘中包含了老型号显卡、声卡等硬件的驱动程序&#xff0c;所以在安装Windows的同时&a…

Java程序设计入门教程 -- 一维数组

目录 一维数组创建 1.声明数组 2.分配数组内存空间 3.数组元素访问 数组初始化 1.静态初始化 2.动态初始化 一维数组的拷贝 1.数组元素的拷贝 2.数组名的拷贝 一维数组创建 1.声明数组 声明一个一维数组的方法很简单&#xff0c;格式如下&#xff1a; 数据类型名[ ] …

ChatGPT下的网站建设会收到哪些影响?

近日&#xff0c;微软发布了人工智能语言模型 ChatGPT&#xff0c;该模型可以理解人类的语言并生成响应式文本。与其他自然语言处理模型不同&#xff0c; ChatGPT具有出色的语言理解能力&#xff0c;并能够生成自然、流畅的文本。 ChatGPT不仅能够回答用户问题&#xff0c;还能…

idea报错class not found

之前代码运行的好好的&#xff0c;突然启动不起来了。报错Application class not found。 解决方案 这种问题一般就是错乱了&#xff0c;直接重来。 1、新建个文件夹&#xff0c;重新clone代码。 2、检查jdk版本是否正确。 3、检查maven版本是否正确。 4、看项目是否设置了so…