Docker部署Nexus通过Maven推送及拉取代码

news2024/9/20 8:52:15
😊 @ 作者: 一恍过去
💖 @ 主页: https://blog.csdn.net/zhuocailing3390
🎊 @ 社区: Java技术栈交流
🎉 @ 主题: Docker部署Nexus通过Maven推送及拉取代码
⏱️ @ 创作时间: 2023年1月16日

目录

  • 1、拉取镜像
  • 2、启动镜像
  • 3、登录系统
  • 4、配置中央仓库
  • 5、用户管理
  • 6、创建仓库
  • 7、代码推送
  • 8、引入私有仓库包

1、拉取镜像

  • 搭建版本:3.45.0

  • 参考地址:https://hub.docker.com/r/sonatype/nexus3/tags

  • 创建工作目录

# 挂载目录
mkdir /home/docker/nexus

# 授权
chmod 777 -R /home/docker/nexus
  • 拉取镜像
# 拉取镜像
docker pull sonatype/nexus3:3.45.0

2、启动镜像

  • 挂载启动Nexus
docker run -d --restart=always \
-p 8081:8081 \
-v /home/docker/nexus:/nexus-data \
--name=nexus3 \
sonatype/nexus3:3.45.0
  • 8081: nexus3 默认服务端口
  • 测试访问

    测试地址:http://192.168.80.121:9091/
    在这里插入图片描述

3、登录系统

nexus的默认用户名为admin

默认密码位置在/home/nexus/sonatype-work/nexus3/admin.password中,使用时直接复制即可,密码为一个uuid

cat /home/nexus/sonatype-work/nexus3/admin.password

在首次登录系统后,会进行一次密码修改

4、配置中央仓库

仓库地址:https://mirrors.huaweicloud.com/repository/maven/
在这里插入图片描述

在这里插入图片描述

5、用户管理

1、添加角色
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、创建用户
在这里插入图片描述
在这里插入图片描述

6、创建仓库

1、创建maven2(hosted)类型仓库

创建仓库需要在登录后才能进行

点击Create repository,然后选择类型为 maven2(hosted)
在这里插入图片描述

在这里插入图片描述

2、设置仓库属性

Maven 仓库分为两种:Snapshot 快照仓库Release 发行仓库

Snapshot 快照仓库用于保存开发过程中的不稳定 SNAPSHOT 版本,Release 发行仓库则用来保存稳定的 RELEASE 版本。

仓库名称设置为 lhz-release(任意);

Version policy选择为Release

Deployment policy选择Allow redeploy,允许部署和更新私服上的组件。

3、添加到仓库组
在这里插入图片描述

在这里插入图片描述

7、代码推送

1、POM文件自动推送

在本地Mavensetting.xml文件中,在<servers>标签中添加Neuxs私服的配置,如下

<servers>
<!--nexus服务器-->
  <servers>  
    <server>
        <!--任意值-->
        <id>lhz-nexus</id>
        <!--私服的访问账户-->
        <username>admin</username>  
        <!--私服的访问密码-->
        <password>123321</password>  
    </server>
</servers>

在需要推送到Nexus仓库代码的POM.XML中,配置推送的仓库及地址

<!--dependencies下面-->
<distributionManagement>
    	<!--推送到release版本的仓库-->
        <repository>
            <!-- 需要和conf文件下pom文件server标签中id保持一致 -->
            <id>lhz-nexus</id>
            <name>nexus release</name>
            <!--推送的仓库地址-->
            <url>http://192.168.80.121:9090/repository/lhz-release/</url>
        </repository>
</distributionManagement>

执行推送:

# maven推送命令
mvn clean deploy

# 推送项目中的部分pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <groupId>com.lhz.utils</groupId>
    <artifactId>template-common-utils</artifactId>
    <packaging>jar</packaging>
    <version>2.0</version>
    <modelVersion>4.0.0</modelVersion>

    <properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
    </properties>


    <dependencies>
        <dependency>
            <groupId>eu.bitwalker</groupId>
            <artifactId>UserAgentUtils</artifactId>
            <version>1.21</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.22</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.15</version>
        </dependency>
     	......
     	......
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.8.1</version>
        </dependency>
    </dependencies>

    <!--dependencies下面-->
    <distributionManagement>
        <!--推送到release版本的仓库-->
        <repository>
            <!-- 需要和conf文件下pom文件server标签中id保持一致 -->
            <id>lhz-nexus</id>
            <name>nexus release</name>
            <url>http://192.168.80.121:9090/repository/lhz-release/</url>
        </repository>
    </distributionManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

在这里插入图片描述

2、手动上传jar包到nexus
在这里插入图片描述

在这里插入图片描述

8、引入私有仓库包

配置如下:

<!--maven配置添加私服的镜像地址,settings.xml 文件中-->
<mirrors>
    <!--如果http不被允许的话,将屏蔽下面的`maven-default-http-blocker`配置-->
    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>
    
    <!--添加私服镜像-->
    <mirror>
        <id>lhz-nexus</id>
		<!--任意值-->
        <name>nexus repository</name> 
        <mirrorOf>*</mirrorOf>  
        <url>http://192.168.80.121:9090/repository/maven-public/</url>  
    </mirror>
</mirrors>

<!--需要拉取jar包的项目中,pom.xml 文件中-->
    <repositories>
        <repository>
           <!--与mirror配置的一致-->
           <id>lhz-nexus</id>
            <name>Nexus Reposotory</name>
			<url>http://192.168.80.121:9090/repository/maven-public/</url>  
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

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

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

相关文章

如何利用ChatGPT帮你写代码?

最近爆火的ChatGpt相信大家都不陌生&#xff0c;听说它还能写代码&#xff0c;而且能力不凡。作为合格的嵌入式软件工程师&#xff0c;必须得充分利用起来&#xff01; 获取系统IP地址 先写一个脚本&#xff0c;获取系统IP地址吧&#xff0c;没想到还有详细的注释&#xff01…

华亚转债上市价格预测

华亚转债基本信息转债名称&#xff1a;华亚转债&#xff0c;评级&#xff1a;A&#xff0c;发行规模&#xff1a;3.4亿元。正股名称&#xff1a;华亚智能&#xff0c;今日收盘价&#xff1a;62.84&#xff0c;转股价格&#xff1a;69.39。当前转股价值 转债面值 / 转股价格 * …

juc系列(1)---进程,线程,并行,并发

目录概述进程线程关系并发并行&#xff1a;同步异步&#xff1a;对比概述 进程 程序由指令和数据组成&#xff0c;但这些指令要运行&#xff0c;数据要读写&#xff0c;就必须将指令加载至CPU,数据加载至内 存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载…

Databend 内幕大揭秘第一弹 - minibend 简介

minibend &#xff0c;一个从零开始、使用 Rust 构建的查询引擎。这里是 minibend 系列技术主题分享的第一期&#xff0c;来自 PsiACE 。 前排指路视频和 PPT 地址 视频&#xff08;哔哩哔哩&#xff09;&#xff1a;https://www.bilibili.com/video/BV1Ne4y1x7Cn PPT&#x…

Unity 之 Addressable可寻址系统 -- 资源加载和释放

可寻址系统资源 -- 加载和资源释放 -- 进阶&#xff08;二&#xff09;一&#xff0c;资源加载1.1 同步异步对比1.2 三种加载模式二&#xff0c;释放资源2.1 基础概念2.2 实例演示2.2.1 示例演示一2.2.2 示例演示二2.3 注意事项概述&#xff1a;本篇文章从资源加载的方式和具体…

Spring官方提供【CSRF攻击】解决方案

步入正文 Cookie cookie是我们常见用来保存用户态信息&#xff0c;cookie跟随我们的请求自动携带。在同一域名下的请求&#xff0c;cookie总是自动携带。 用户态: 当前登入者的用户信息 以上的特性会导致一个潜在漏洞-CSRF CSRF CSRF一般指跨站请求伪造。 跨站请求伪造&…

长安链合约标准协议启动建设,邀请社区用户评审

智能合约是区块链摆脱第三方&#xff0c;实现验证、执行业务逻辑的“看不见的手”。随着联盟链产业落地进入快车道&#xff0c;需要面对的应用场景更加多样&#xff0c;智能合约标准协议作为推动联盟链应用生态繁荣的重要一环也需要加速推进发展。 区块链技术正在发展中规范。…

PHP 连接 MySQL

PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved)PDO (PHP Data Objects) 在 PHP 早期版本中我们使用 MySQL 扩展。但该扩展在 2012 年开始不建议使用。 我是该用 MySQLi &#xff0c;还是 PDO? 如果你需要一个简短的回答&…

C语言 栈的应用 计算简单的中缀表达式

代码简介&#xff1a;下面的代码实现了计算简单的中缀表达式&#xff1a;只可以处理一位正整数的四则运算及括号。是栈的简单应用&#xff0c;要实现中缀表达式运算需要用两个栈&#xff0c;一个存储数字的栈和一个存储运算符的栈&#xff0c;因为懒得写两遍不同的栈上的操作&a…

增益自适应PI控制器+死区过滤器(Smart PLC向导PID编程应用)

增益自适应和死区过滤器如果不和S7-200 SMART PLC PID向导组合实现,大家可以自行编写优化的PID指令。算法起始非常简单,具体实现过程大家可以参看下面的文章链接, 三菱增量式PID+死区过滤器 三菱PLC增量式PID算法FB(带死区设置和外部复位控制)_RXXW_Dor的博客-CSDN博客关于…

【论文简述】High-Resolution Optical Flow from 1D Attention and Correlation(ICCV 2021)

一、论文简述 1. 第一作者&#xff1a;Haofei Xu 2. 发表年份&#xff1a;2021 3. 发表期刊&#xff1a;ICCV 4. 关键词&#xff1a;光流、代价体、自注意力、高分辨率、GRU 5. 探索动机&#xff1a;小分辨率对于网络性能有影响&#xff0c;并且现实场景中大多为高分辨率的…

Minecraft 1.19.2 Fabric模组开发 04.动画效果方块

我们本次尝试在1.19 Fabric中制作一个具有动画效果的方块 效果演示效果演示效果演示 首先&#xff0c;请确保你的开发包中引入了geckolib依赖&#xff0c;相关教程请参考:Minecraft 1.19.2 Fabric模组开发 03.动画生物实体 1.首先我们要使用geckolib制作一个物品和对应的动画…

eCharts工具类

ECharts是一款基于JavaScript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。ECharts最初由百度团队开源&#xff0c;并于2018年初捐赠给Apache基金会&#xff0c;成为ASF孵化级项目。 ECharts官方地址…

【数据结构与算法】顺序表的原理及实现

1.什么是顺序表 顺序表是用一段物理地址连续的存储单元进行存储元素的线性结构&#xff0c;通常是以数组进行存储。通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。 2.顺序表的实现 判断顺序表是否为空表public boolean isEmpty()判断顺序表是否满publi…

excel功能小技巧:自动求和的注意事项

在EXCEL里有个非常方便的按钮&#xff0c;叫做自动求和。不需要输入公式&#xff0c;直接一点&#xff0c;即可得出求和结果。由于它操作上的便利&#xff0c;所以深受小白喜爱。不过看着简单的自动求和按钮&#xff0c;实际上却藏着不少暗坑&#xff0c;稍不留神&#xff0c;可…

juc系列(2)--线程的使用及原理

目录线程创建线程ThreadRunnableCallable线程方法APIrun startsleep yieldjoininterrupt打断线程打断 park终止模式daemon不推荐线程原理运行机制线程调度未来优化线程状态查看线程线程 创建线程 Thread Thread 创建线程方式&#xff1a;创建线程类&#xff0c;匿名内部类方…

R-P-Faster R-CNN day65 读论文:高分辨率遥感影像综合地理空间目标检测框架

An Efficient and Robust Integrated Geospatial Object Detection Framework for High Spatial Resolution Remote Sensing Imagery 1. Introduction3. Overview of the Proposed R-P-Faster R-CNN Framework3.1. 有效集成区域建议网络与目标检测Faster R-CNN框架3.1.2. RPN与…

java反射在spring ioc和aop中的应用

java反射在spring ioc和aop中的应用 反射&#xff1a; 1.反射是什么&#xff1f; 程序运行时&#xff0c;通过类名能够获得类的属性和方法。使用方式如下 Class clazz Class.ForName(“Student”)Class clazz Student.class;Class clazz student.getClass(); 获取到claz…

java JUC 中 Object里wait()、notify() 实现原理及实战讲解

1.Object中的wait()实现原理 在进行wait()之前&#xff0c;就代表着需要争夺Synchorized&#xff0c;而Synchronized代码块通过javap生成的字节码中包含monitorenter和monitorexit两个指令。 当在进加锁的时候会执行monitorenter指令&#xff0c;执行该指令可以获取对象的mon…

前端与HTML

本节课程围绕“前端要解决的基本问题”及“什么是 HTML ”两个基本问题展开&#xff0c;了解 HTML 高效的编写原则。 什么是前端 使用web技术栈解决多端的人机交互问题 技术栈 html&#xff08;内容&#xff09; css &#xff08;样式&#xff09;javascript &#xff08;行…