docker搭建maven私库Nexus3

2023-12-15 06:28

本文主要是介绍docker搭建maven私库Nexus3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是Maven私服?

Maven 私服是一种特殊的Maven远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远程仓库(中央仓库、其他远程公共仓库)。

当然也并不是说私服只能建立在局域网,也有很多公司会直接把私服部署到公网,具体还是得看公司业务的性质是否是保密的等等,因为局域网的话只能在公司用,部署到公网的话员工在家里也可以办公使用。

建立了 Maven 私服后,当局域网内的用户需要某个构件时,会按照如下顺序进行请求和下载。

请求本地仓库,若本地仓库不存在所需构件,则跳转到第 2 步;
请求 Maven 私服,将所需构件下载到本地仓库,若私服中不存在所需构件,则跳转到第 3 步。
请求外部的远程仓库,将所需构件下载并缓存到 Maven 私服,若外部远程仓库不存在所需构件,则 Maven 直接报错。
此外,一些无法从外部仓库下载到的构件,也能从本地上传到私服供其他人使用。

Maven 私服优势

Maven 私服具有以下 5 点优势:

  • 节省外网带宽:大量对于外部远程仓库的重复请求,会消耗很大量的带宽,利用 Maven私服代理外部仓库后,能够消除对外部仓库的大量重复请求,降低外网带宽压力。
  • 下载速度更快:Maven 私服位于局域网内,从私服下载构建更快更稳定。
    便于部署第三方构件:有些构件是无法从任何一个远程仓库中获得的(例如,某公司或组织内部的私有构件、Oracle 的 JDBC 驱动等),建立私服之后,就可以将这些构件部署到私服中,供内部 Maven 项目使用。
  • 提高项目的稳定性,增强对项目的控制:如果不建立私服,那么 Maven 项目的构件就高度依赖外部的远程仓库,若外部网络不稳定,则项目的构建过程也会变得不稳定。建立私服后,即使外部网络状况不佳甚至中断,只要私服中已经缓存了所需的构件,Maven 也能够正常运行。
  • 此外还提供了很多额外控制功能,例如,权限管理、RELEASE/SNAPSHOT 版本控制等,可以对仓库进行一些更加高级的控制。
  • 降低中央仓库得负荷压力:由于私服会缓存中央仓库得构件,避免了很多对中央仓库的重复下载,降低了中央仓库的负荷。

环境要求

需要先安装
1.docker
2.jdk

安装Nexus

下载一个nexus3的镜像:

docker pull sonatype/nexus3

使用nexus3镜像创建并启动一个容器,然后指定暴露18091端口到对应主机的18091端口:

docker run -d -p 18091:18091 --name nexus -v /backup/nexus-data:/var/nexus-data --restart=always sonatype/nexus3

查看启动容器的状态

docker ps

在这里插入图片描述

查看容器日志

docker logs -f -t 容器名称id

由于nexus的默认端口为8081,我们在启动的时候改为18091后需要修改nexus的配置文件

先进入容器

docker exec -it 容器名称 bash

修改配置文件

vi /opt/sonatype/nexus/etc/nexus-default.properties 

在这里插入图片描述

同时查看admin密码

vi /nexus-data/admin.password

这样就可以在本地浏览器进入nexus页面了,地址为 服务器ip:18091
在这里插入图片描述

右上角登录用户名为admin,密码为之前查看的密码。

浏览器访问配置仓库

删除nuget开头的仓库
配置maven-central的代理地址
在这里插入图片描述

阿里代理地址:http://maven.aliyun.com/nexus/content/groups/public/

配置本地maven的settings.xml

servers标签修改 仓库权限用户名和密码

	<server>  <id>maven-releases</id>  <username>admin</username>  <password>wubuer@2021</password>  </server><server>   <id>maven-snapshots</id>   <username>admin</username>   <password>wubuer@2021</password>   </server>

mirrors添加仓库中group类型的仓库

	<mirror>  <id>nexus</id>  <name>internal nexus repository</name>  <url>http://119.3.90.18:18091/repository/maven-public/</url>  <mirrorOf>central</mirrorOf>  </mirror> 

profiles添加仓库中仓库信息

	<profile>    <id>nexus</id>    <repositories>    <repository>    <id>maven-public</id>    <url>http://119.3.90.18:18091/repository/maven-public/</url>    <releases><enabled>true</enabled></releases>    <snapshots><enabled>true</enabled></snapshots>    </repository>    <repository>    <id>maven-snapshots</id>    <url>http://119.3.90.18:18091/repository/maven-snapshots/</url>    <releases><enabled>true</enabled></releases>    <snapshots><enabled>true</enabled></snapshots>    </repository>    </repositories>    <pluginRepositories>    <pluginRepository>    <id>maven-releases</id>    <url>http://119.3.90.18:18091/repository/maven-releases/</url>    <releases><enabled>true</enabled></releases>    <snapshots><enabled>true</enabled></snapshots>    </pluginRepository>    <pluginRepository>    <id>maven-snapshots</id>    <url>http://119.3.90.18:18091/repository/maven-snapshots/</url>    <releases><enabled>true</enabled></releases>    <snapshots><enabled>true</enabled></snapshots>    </pluginRepository>    </pluginRepositories>    </profile>

配置pom.xml

添加标签

 <distributionManagement><repository><id>maven-releases</id><name> Nexus Release Repository </name><url> http://119.3.90.18:18091/repository/maven-releases/ </url></repository><snapshotRepository><id>maven-snapshots</id><name> Nexus Snapshot Repository </name><url> http://119.3.90.18:18091/repository/maven-snapshots/ </url></snapshotRepository></distributionManagement>

这篇关于docker搭建maven私库Nexus3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/495435

相关文章

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

springboot 加载本地jar到maven的实现方法

《springboot加载本地jar到maven的实现方法》如何在SpringBoot项目中加载本地jar到Maven本地仓库,使用Maven的install-file目标来实现,本文结合实例代码给... 在Spring Boothttp://www.chinasem.cn项目中,如果你想要加载一个本地的ja

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt