使用Nexus搭建Maven私有库实战

news2024/11/25 22:45:09

本篇快速演示如何搭建和使用Nexus本地库, 关于Nexus 的基本使用参考:
Nexus搭建Maven私有库介绍

实战场景

本篇的实际场景是:

  • 本地开发机器可以连接外部网络
  • 测试或正式部署环境只能连接内网
  • 项目使用了内部开发的组件库

在搭建搭建Maven私有库之前的处理方式是:

  1. 在本地开发机器下载依赖包和插件等
  2. 将本地库的目录复制到测试或部署环境

也即是说使用本地库的方式,但是这种方式存在使用不方便的问题:
在pom.xml 中新增一个依赖项, 需要将整个目录再复制一次, 因为这个依赖项会下载其他的依赖项, 要精准的知道这个依赖项及其相关的依赖项是比较麻烦的,所以就整个库目录进行复制。而一般状况, 本地库的目录内容比较多, 基本以G为单位, 所以复制起来一般也是几个小时。

Nexus 搭建规划

需要的机器如下:

  • 机器A:开发机器,可以连接外网。这里存在Maven的本地库目录
  • 机器B:部署机器,只能连内网
  • 机器C:Nexus服务器,只能连内网

考虑Nexus 所在的机器无法连接外部网络, 规划如下:

  • 自身开发的稳定版本库发布到 maven-releases
  • 创建库 maven-local 用于批量导入机器A本地库中的依赖
  • maven-public 配置包含 maven-releases 和 maven-local

Nexus 搭建步骤

1. 创建库 maven-local ,用于存放机器A本地库中的依赖

maven-local 的作用就是将原先本地库里下载的依赖导入到 nexus 中,创建库之前需要创建一个 Blob Store 用于存放文件。 创建步骤如下:

  1. 登录Nexus 服务器,点击 Create Blob Store
    在这里插入图片描述

  2. 选择存放类型 Fil 之后, 输入 Blob Store的名字, 路径会根据名字自动产生。
    在这里插入图片描述

注: 默认产生的存储路径位于 sonatype-work\nexus3\blobs 目录下。

  1. 创建完成之后就可以在存储的列表中看到这个 Blob Store 了

在这里插入图片描述

  1. 点击 “Create repository”

在这里插入图片描述

  1. 选择 maven2(hosted)

在这里插入图片描述

  1. 输入库的名字,选择Blob Store, 部署策略选择允许重新部署
    在这里插入图片描述

  2. 输入完成, 点击"Create repository" 完成创建,创建后可以在库列表可以看到

在这里插入图片描述

2. 批量导入本地库的依赖

将机器A的本地库路径下所有的依赖导入机器C的Nexus 服务中。 步骤如下:

  1. 到 https://download.csdn.net/download/oscar999/87961368 下载批量导入maven本地库目录到Nexus私有服务器的脚本,下载的脚本名是 mvnimport.sh
  2. 将mvnimport.sh 复制到机器A的本地库根路径
    3 Git Bash切换到本地库路径, 执行命令. ./mvnimport.sh -u admin -p yourpassword -r http://机器C:8081/repository/maven-local/

关于批量导入的更详细内容可以参考: Nexus如何导入jar以及批量导入Maven的本地库目录

自身开发的稳定版本库发布到 maven-releases

在机器A开发的自身的库,稳定版本发布到maven-releases , 开发过程中的版本发布到maven-snapshots。
关于如何发布自身开发的库, 可以参考: 如何在Maven中发布项目到Nexus私有服务器



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

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

相关文章

如何一次解决两大难题,不用写注释,也不会被他人吐槽没有注释呢?

如何一次解决两大难题,不用写注释,也不会被他人吐槽没有注释呢? 导读为什么要减少代码中的注释量呢?一、无用型的注释二、絮絮叨叨的注释三、代替代码分层的注释四、不知所云的注释 参考:阿里云开发者社区…

【vs2022】解决 “对程序集签名是出错 - 拒绝访问 ”

背景 拿到一个工程,编译时报错:“对程序集签名是出错 - 拒绝访问” 解决方法 ”C:\ProgramData\Microsoft\Crypto\RSA”目录下面,找到【MachineKeys】文件夹。 右键【MachineKeys】文件夹,在安全属性里面,将当前win…

DETR系列:RT-DETR(一) 论文解析

论文:《DETRs Beat YOLOs on Real-time Object Detection》 2023.4 DETRs Beat YOLOs on Real-time Object Detection:https://arxiv.org/pdf/2304.08069.pdf 源码地址:https://github.com/PaddlePaddle/PaddleDetection/tree/develop/conf…

江西五十铃汽车PMO经理苏建受邀为第十二届PMO大会演讲嘉宾

江西五十铃汽车有限公司PMO经理苏建先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:PMO全链路建设促进组织变革——传统汽车行业0-1PMO最佳实践探索。大会将于8月12-13日在北京举办,敬请关注! 议题简要&…

LangChain:LLM应用程序开发(上)——Models、Prompt、Parsers、Memory、Chains

文章目录 一、Models、Prompt、Parsers1.1 环境配置(导入openai)1.2 辅助函数(Chat API : OpenAI)1.3 使用OpenAI API进行文本翻译1.4使用LangChain进行文本翻译1.5 使用LangChain解析LLM的JSON输出1.5.1 LangChain输出为string格…

基于人体姿势估计的舞蹈检测(AI Dance based on Human Pose Estimation)

人体姿势骨架以图形格式表示人的方向。本质上,它是一组坐标,可以连接起来描述人的姿势。骨架中的每个坐标都被称为一个部分(或一个关节,或一个关键点)。两个部分之间的有效连接称为一对(或分支)。下面是一个人体姿势骨架样本。 因此&#xff…

mysql基础3——数据备份与恢复、破解数据库密码

文章目录 一、备份方案二、备份工具mysqldump2.1 备份整张表数据2.2 备份整个库数据 三、全量备份四、差异备份五、数据库密码破解 一、备份方案 备份方案概念特点全量备份对某一个时间点上的所有数据或应用进行完全拷贝。数据恢复快,备份时间长。增量备份在一次全…

抓住重点,谋定而后动

一、我们平常项目有哪几种 有两种常规项目、大项目 1.常规项目 技术团队的重心是把执行做到位,你要更关注过程管控,确保系统交付 2.大项目: 什么是大项目,他有什么特点 大项目时间投入大、人员规模大、系统更大,复…

ResourceBundle读取properties文件

ResourceBundle 常用API 方法签名方法描述public Locale getLocale()获取本地国际化环境ppublic Enumeration getKeys()获取属性文件中所有keypublic final String getString(String key)获取属性文件中key对应的value, 返回值为String, 如果不存在, 则抛出异常public final O…

STM32文档

一、寄存器缩写 二、存储器和总线构架 DMA,全称为:Direct Memory Access,即直接存储器访问 简而言之,DMA就是将一个内存里的数据搬运到另一个内存里,此过程无需CPU直接控制输出 系统架构存储器组织存储器映射&#xf…

解密:Prompt、Token、和completions是什么?

Prompt、Token、和completions 本文是科普向,大家放心阅读 在ChatGPT越来越火的时候,很多开发者都想大展拳脚,但在这之前,我们需要了解一些基础知识,比如你知道什么是token、什么是prompt、什么是Complemention Pro…

vue下基于elementui自定义表单-后端数据设计篇

vue下基于elementui自定义表单-后端篇 自定义表单目前数据表单设计是基于数据量不大的信息单据场景,因为不考虑数据量带来的影响。 数据表有: 1.表单模版表,2.表单实例表,3.表单实例项明细表,4表单审批设计绑定表 以FormJson存…

chatgpt赋能python:关于Python的常见问题及解决方法

关于Python的常见问题及解决方法 在编程领域中,Python已经成为了最流行的编程语言之一。然而,在使用Python编写代码时,难免会遇到一些问题。在本文中,我们将介绍一些常见的Python问题以及如何解决它们。 编码问题 在Python中&a…

idea项目名旁边还有一个项目名——idea笔记

问题描述 我们常常因为想改项目名但是没有改完全从而出现了项目名旁边还有一个项目名 例如: 解决方案: 打开File->project structure 修改前: 修改后:

【数据挖掘】时间序列教程【一】

第一章 说明 对于时间序列的研究,可以追溯到19世纪末和20世纪初。当时,许多学者开始对时间相关的经济和社会现象进行研究,尝试发现其规律和趋势。其中最早的时间序列研究可以追溯到法国经济学家易贝尔(Maurice Allais)…

微服务04 分布式搜索引擎 elasticsearch DSL数据聚合 自动补全 数据同步 集群 Sentinel

微服务03 分布式搜索引擎 elasticsearch ELK kibana RestAPI 索引库 DSL查询 RestClient 黑马旅游 分布式搜索引擎03 1.数据聚合 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎&#x…

ℰ悟透Qt—Http网络编程

目录 概述实践理论QNetworkAccessManager进行Http编程的基本步骤代码实战(重点片段) 概述 网络访问 API 建立在一个 QNetworkAccessManager 对象之上,该对象保存了发送请求所需的公共配置和设置。它包含代理和缓存配置,以及与此类问题相关的信号和可用于…

【计算机网络】数据链路层之随机接入-CSMA/CD协议(总线局域网)

1.概念 2.信号碰撞(冲突) 3.解决方案 CSMA/CD 4.争用期(端到端往返时延) 5.最小帧长 6.最大帧长 7.指数退避算法 8.信道利用率 9.帧发送流程 10.帧接受流程 12.题目1 13.题目2 14.题目3 15 小结

无线蓝耳机哪些牌子好?十大真无线耳机排名品牌

随着TWS技术在应用层面的日益完善,真无线蓝牙耳机就越来越受欢迎了,完全摒弃了线材的束缚,做到了真正的无线耳机,这简直是无法忍受耳机线的强迫症的福音,而且现在不仅是佩戴时会格外的舒适,随着无线技术的不…

Redhawk: 为什么STA CHECK中switch cell覆盖率为0?

如题,做dynamic analysis时,不需要switch cell的timing window信息,但是做low power analysis需要做上电分析时switch cell的timing window就是必须的了,本文对switch cell control pin没有timing window (STA CHECK覆盖率为零)的…