【Maven】nexus 配置私有仓库配置【转】

介绍:【Maven】Nexus几个仓库的介绍-CSDN博客

一、仓库类型

  1. proxy 远程仓库的代理,比如说nexus配置了一个central repository的proxy,当用户向这个proxy请求一个artifact的时候,会现在本地查找,如果找不到,则会从远程仓库下载,然后返回给用户。
  2. hosted 宿主仓库,用户可以把自己的一些仓库deploy到这个仓库中
  3. group 仓库组,是nexus特有的概念,目的是将多个仓库整合,对用户暴露统一的地址,这样就不需要配置多个仓库地址。

比如默认生成的 central 仓库,是一个 proxy 类型的仓库,代理的是默认的 maven 中央仓库

image

而默认的 public 仓库则是一个 group 类的仓库

image

二、仓库创建

1. 阿里仓库的代理

image

2. 自己的 release 仓库

image

3. 自己的 snapshot 仓库

image

4. 组合仓库

这里直接利用自动创建的 public 仓库,去掉原有的 release 和 snapshot 仓库,release(s)和snapshot(s)可参考自动生成的那两个仓库名称,我的没加s,懒得处理了

image

三、用户创建

可直接跳过,使用默认的 admin 用户

1. 角色

权限略,直接根据已有权限创建角色

image

会发现我们自己创建的仓库也会自动创建相关权限数据,那么具有 group 的仓库的权限是否就获得其内部各仓库的相应权限呢,下面是对 public(release)添加除删除外的权限(我想还去除更新但保留新增不行吗?)和snapshot仓库的全部权限
这里是有点问题的,可直接拉 Create Role 的最下面添加匿名用户的 role,这样就可以访问了,但是推送API之类的不行,下面直接添加对应仓库的 read 权限最终是下载不了的

image

2. 创建一个开发用户

image


创建用户并关联角色,注意密码是用户密码而非邮箱密码

image

四、maven 配置

1. 密码加密

官方说明:Password Encryption – Maven
这里的 Master password 是生成密钥的种子?还是什么?

PS C:\Users\??\Desktop\tmp\untitled> mvn --encrypt-master-password
Master password: 
{cK3TV5Ba/wUHu/qCTE/Cs7fTZCo6ZIe8oLCRaQnErN7BO+u/7Xppi4uiCqLETsv4}

在 .m2 目录下创建文件 settings-security.xml,内容如下

<settingsSecurity><master>{cK3TV5Ba/wUHu/qCTE/Cs7fTZCo6ZIe8oLCRaQnErN7BO+u/7Xppi4uiCqLETsv4}</master>
</settingsSecurity>

然后对我们上面的 dev-user 密码进行加密,下面输入的 Password 即为 dev-user 的明文密码,应该是使用上面生成的密钥对明文进行加密

PS C:\Users\??\Desktop\tmp\untitled> mvn --encrypt-password
Password: 
{EJ0L8XOtDRIHdffd85KgqbvFnpnxzAhaM5kJafGDB0Q=}

然后在setting.xml文件中进行配置,主要是 servers 节点(有个疑问,server的id是否需要和下面配置的repository的id一致,应该要一致吧,不然怎么知道访问是使用哪个密码呢)
下面包含了 repository 的设置和 pluginRepository 的设置。

  <servers><server><id>maven-public</id><username>user-dev</username><password>{EJ0L8XOtDRIHdffd85KgqbvFnpnxzAhaM5kJafGDB0Q=}</password></server><server><id>maven-release</id><username>user-dev</username><password>{EJ0L8XOtDRIHdffd85KgqbvFnpnxzAhaM5kJafGDB0Q=}</password></server><server><id>maven-snapshot</id><username>user-dev</username><password>{EJ0L8XOtDRIHdffd85KgqbvFnpnxzAhaM5kJafGDB0Q=}</password></server></servers><profiles><profile><id>maven-repository</id><activation><activeByDefault>true</activeByDefault></activation><repositories><profiles><profile><id>maven-repository</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven-public</id><name>maven-public</name><url>http://192.168.31.120:8081/repository/maven-public/</url><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases></repository><repository><id>maven-release</id><name>maven-public</name><url>http://192.168.31.120:8081/repository/maven-project-release/</url><snapshots><enabled>false</enabled></snapshots><releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases></repository><repository><id>maven-snapshot</id><name>maven-snapshot</name><url>http://192.168.31.120:8081/repository/maven-project-snapshot/</url><snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots><releases><enabled>false</enabled></releases></repository></repositories><pluginRepositories><pluginRepository><id>maven-public</id><url>http://192.168.31.120:8081/repository/maven-public/</url></pluginRepository></pluginRepositories></profile></profiles></profiles>

注意:setting.xml 中需要去掉下面的配置,这个默认的镜像拦截

    <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>

五、尝试maven项目

IDEA 创建 maven 项目加载后,不知道是否访问了我们的仓库,不知道上面的配置是否生效

  1. 关闭 nexus 的匿名访问

    image

  2. IDEA 创建项目后停止 IDEA 的处理(IDEA右下角),删除本地仓库的数据,使用命令行 mvn -X 的 -X 开启 debug 日志,查看下载是否走配置的私服

  3. nexus 查看是否有依赖数据

六、踩坑

1. 权限问题

就是上面所说的 Role 问题,仅赋予角色对应仓库的 Read 等权限,最终 maven 拉取依赖会报 403,如下图 maven 的 debug 日志,已经优先从私服拉取了,但是拉取失败(maven 的 debug 日志并未说明是什么错误,需要到 shell 到 nexus 服务器打印访问日志)

image

image

深入待处理 OR 不处理,反正也是自己用

2. 私服拉取失败

和上面差不多,最开始我以为打印了私服的日志就是成功了的,但是实际从私服拉取数据失败它是不会报错的,当然推送API等的时候失败就会报错了,我就是配置用户名配置错误了,倒是失败的,直到我到 nexus 查询发现没有依赖包数据,才发现有问题,正确拉取到数据如下,是有文件总大小和网络下载速度的。

image

3. 默认镜像

maven 的 settings.xml 中是有一个默认镜像配置的,这个应该是所有的 http 请求(非https)会被处理转发到中央仓库的,而非配置的私服,需要注释掉

image

image

分类: 虚拟化(linux、vm、docker)

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

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

相关文章

Python学习------第十天

数据容器-----元组 定义格式&#xff0c;特点&#xff0c;相关操作 元组一旦定义&#xff0c;就无法修改 元组内只有一个数据&#xff0c;后面必须加逗号 """ #元组 (1,"hello",True) #定义元组 t1 (1,"hello") t2 () t3 tuple() prin…

Spring Web入门练习

加法计算器 约定前后端交互接⼝ 约定 "前后端交互接⼝" 是进⾏ Web 开发中的关键环节. 接⼝⼜叫 API&#xff08;Application Programming Interface), 我们⼀般讲到接⼝或者 API&#xff0c;指的都是同⼀个东西. 是指应⽤程序对外提供的服务的描述, ⽤于交换信息…

uniapp微信小程序接入airkiss插件进行WIFI配网

本文可参考uniapp小程序插件 一.申请插件 微信公众平台设置页链接&#xff1a;微信公众平台 登录您的小程序微信公众平台&#xff0c;进入设置页&#xff0c;在第三方设置->插件管理->添加插件中申请AiThinkerAirkissforWXMini插件&#xff0c;申请的插件appId为【wx6…

蓝队技能-应急响应篇日志自动采集日志自动查看日志自动化分析Web安全内网攻防工具项目

知识点&#xff1a; 1、应急响应-系统日志收集-项目工具 2、应急响应-系统日志查看-项目工具 3、应急响应-日志自动分析-项目工具 演示案例-蓝队技能-工具项目-自动日志采集&自动日志查看&自动日志分析 系统日志自动采集-观星应急工具(Windows系统日志) SglabIr_Co…

类和对象——static 成员,匿名对象(C++)

1.static成员 a&#xff09;⽤static修饰的成员变量&#xff0c;称之为静态成员变量&#xff0c;静态成员变量⼀定要在类外进行初始化。 b&#xff09;静态成员变量为所有类对象所共享&#xff0c;不属于某个具体的对象&#xff0c;不存在对象中&#xff0c;存放在静态区。 …

node.js中express的基本了解

定义 Express是基于Node.js平台&#xff0c;快速、开放、极简的Web开发框架。 本质 Express是一个npm上的第三方包&#xff0c;提供了快速创建Web服务器的便捷方法。 作用 与Node.js内置的http模块类似&#xff0c;Express也是专门用来创建Web服务器的&#xff0c;但它极大地简…

Django实现智能问答助手-基础配置

设置 Django 项目、创建应用、定义模型和视图、实现问答逻辑&#xff0c;并设计用户界面。下面是一步一步的简要说明&#xff1a; 目录&#xff1a; QnAAssistant/ # 项目目录 │ ├── QnAAssistant/ # 项目文件夹 │ ├── init.py # 空文件 │ ├── settings.py # 项目配…

Spring工作流程

&#xff08;3&#xff09;案例工作流程 启动服务器初始化过程 1.服务器启动&#xff0c;执行ServletContainersInitConfig类&#xff0c;初始化web容器功能类似于以前的web.xml 2.执行createServletApplicationContext方法&#xff0c;创建了WebApplicationContext对象 该方法…

C语言第13节:指针(3)

1. 回调函数 回调函数的基本思想是&#xff0c;将函数指针作为参数传递给另一个函数&#xff0c;并在需要时通过这个函数指针调用对应的函数。这种方式允许一个函数对执行的内容进行控制&#xff0c;而不需要知道具体的实现细节。 回调函数在以下场景中尤为有用&#xff1a; …

用pyspark把kafka主题数据经过etl导入另一个主题中的有关报错

首先看一下我们的示例代码 import os from pyspark.sql import SparkSession import pyspark.sql.functions as F """ ------------------------------------------Description : TODO&#xff1a;SourceFile : etl_stream_kafkaAuthor : zxxDate : 2024/11/…

STM32芯片EXIT外部中断的配置与原理以及模板代码(标准库)

配置EXIT外部中断其实就是把GPIO刀NVIC的各个外设配置好 第一步&#xff1a;配置RCC&#xff0c;把我们涉及到的外设的时钟都打开 &#xff08;此处EXTI是默认打开的&#xff0c;而NVIC是内核外设无需配置&#xff09; 第二步&#xff1a;配置GPIO,选择端口为输入模式 第三…

misc设备驱动

MISC 理解 简化创建设备号&#xff0c;cdev&#xff0c;class&#xff0c;device 的步骤。 设备树 代码 模块初始化和退出 平台下驱动匹配和移除 MiSC 结构体 文件描述符的处理函数 其他

layui合并table相同内的行

<table border"1" id"table1" class"layui-table"><thead><tr><th><b>姓名</b></th><th><b>项目</b></th><th><b>任务</b></th><th><b>…

java ssm 羽绒服商城网站 在线商城 在线服饰销售网站 源码 jsp

一、项目简介 本项目是一套基于SSM的羽绒服商城网站&#xff0c;主要针对计算机相关专业的和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本、软件工具等。 项目都经过严格调试&#xff0c;确保可以运行&#xff01; 二、技术实现 ​后端技术&#xff…

程序里sendStringParametersAsUnicode=true的配置导致sql server cpu使用率高问题处理

一 问题描述 近期生产环境几台sql server从库cpu使用率总是打满&#xff0c;发现抓的带变量值的慢sql&#xff0c;手动代入变量值执行并不慢&#xff0c;秒级返回&#xff0c;不知道问题出在哪里。 二 问题排查 用扩展事件或者sql profiler抓慢sql&#xff0c;抓到了变量值&…

OpenAI震撼发布:桌面版ChatGPT,Windows macOS双平台AI编程体验!

【雪球导读】 「OpenAI推出ChatGPT桌面端」 OpenAI重磅推出ChatGPT桌面端&#xff0c;全面支持Windows和macOS系统&#xff01;这款新工具为用户在日常生活和工作中提供了前所未有的无缝交互体验。对于那些依赖桌面端进行开发工作的专业人士来说&#xff0c;这一更新带来了令人…

湘潭大学软件工程算法设计与分析考试复习笔记(四)

回顾 湘潭大学软件工程算法设计与分析考试复习笔记&#xff08;一&#xff09;湘潭大学软件工程算法设计与分析考试复习笔记&#xff08;二&#xff09;湘潭大学软件工程算法设计与分析考试复习笔记&#xff08;三&#xff09; 前言 现在是晚上十一点&#xff0c;我平时是十…

Python学习29天

二分查找 # 定义函数冒泡排序法从大到小排列 def bbble_sort(list):# i控制排序次数for i in range(len(list) - 1):# j控制每次排序比较次数for j in range(len(list) - 1 - i):if list[j] < list[j 1]:list[j], list[j 1] list[j 1], list[j] # 定义二分查找函数 def…

(Linux)搭建静态网站——基于http/https协议的静态网站

简单了解nginx配置文件 1.下载并开启nginx服务 下载 [rootlocalhost ~]# dnf install nginx -y开启 [rootlocalhost ~]# systemctl restart nginx 1.(1)搭建静态网站——基于http协议的静态网站 实验1&#xff1a;搭建一个web服务器&#xff0c;访问该服务器时显示“hello w…

【数据结构-表达式解析】力扣227. 基本计算器 II

给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意&#xff1a;不允许使用任何将字符串作为数学表达式计算的内置函数&#…