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

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同