当前位置: 首页 > news >正文

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

😊 @ 作者: 一恍过去
💖 @ 主页: 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>

相关文章:

  • C语言学习——字符函数和字符串函数
  • 微信小程序登陆,后端接口实现 - springboot
  • 【论文精读】Scaling distributed machine learning with the parameter server
  • 【JavaEE】多线程之线程安全(synchronized篇),死锁问题
  • ESP32 FreeRTOS-流缓冲区(12)
  • python学习笔记---高级特性【廖雪峰】
  • AtCoder Beginner Contest 285解题报告
  • 自从我学会了Jenkins的自动构建,我再也没有每次都打包上传到服务器然后发布Java服务了
  • 【目标检测】55、YOLOv8 | YOLOv5 团队 Ultralytics 再次出手,又实现了 SOTA
  • 【C++升级之路】第七篇:STL简介
  • k8s之ingress实战小栗子
  • 不会数学的程序员,只能走到初级开发工程师!
  • 基于贝叶斯算法的邮件过滤管理系统的设计和实现(Vue+SpringBoot)
  • 2023/1 寒假期间自学c++计划安排
  • 21 个 Java 核心技术
  • CSS实用技巧干货
  • es的写入过程
  • fetch 从初识到应用
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • java取消线程实例
  • RxJS: 简单入门
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Yeoman_Bower_Grunt
  • 给新手的新浪微博 SDK 集成教程【一】
  • 关于springcloud Gateway中的限流
  • 利用jquery编写加法运算验证码
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 实战|智能家居行业移动应用性能分析
  • 正则学习笔记
  • puppet连载22:define用法
  • 大数据全解:定义、价值及挑战
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​iOS实时查看App运行日志
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #if和#ifdef区别
  • (+4)2.2UML建模图
  • (4)(4.6) Triducer
  • (bean配置类的注解开发)学习Spring的第十三天
  • (zt)最盛行的警世狂言(爆笑)
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • ***利用Ms05002溢出找“肉鸡
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net 获取url的方法
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .net 受管制代码
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NET处理HTTP请求