Nexus - Maven私服构建和使用

文章目录

  • 1. Maven 私服简介
  • 2. Nexus下载安装
  • 3. 如何使用Nexus私服
    • 3.1 通过Nexus下载Jar包
    • 3.2 将Jar包部署到Nexus
    • 3.3 引用别人部署的jar包

1. Maven 私服简介

Maven 私服是一种特殊的Maven远程仓库,它是架设在局域网内的仓库服务,用来代理位于外部的远程仓库(中央仓库、其他远程公共仓库)。
当然也并不是说私服只能建立在局域网,也有很多公司会直接把私服部署到公网,具体还是得看公司业务的性质是否是保密的等等,因为局域网的话只能在公司用,部署到公网的话员工在家里也可以办公使用。

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

  1. 请求本地仓库,若本地仓库不存在所需构件,则跳转到第 2 步;
  2. 请求 Maven 私服,将所需构件下载到本地仓库,若私服中不存在所需构件,则跳转到第 3 步。
  3. 请求外部的远程仓库,将所需构件下载并缓存到 Maven 私服,若外部远程仓库不存在所需构件,则 Maven 直接报错。

此外,一些无法从外部仓库下载到的构件,也能从本地上传到私服供其他人使用。

请添加图片描述

Maven私服的优势:

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

常见的Maven私服产品:
6. Apache的Archiva
7. JFrog的Artifactory
8. Sonatype的Nexus([ˈneksəs])(当前最流行、使用最广泛)

2. Nexus下载安装

① 下载地址:https://help.sonatype.com/repomanager3/product-information/download
用啥下啥,我这里先用的windows系统:
在这里插入图片描述
② 找个位置解压,最好是没有中文/空格的路径下
在这里插入图片描述
③ 以管理员的身份打开CMD命令行,进入nexus*/bin目录下,输入.\nexus.exe /run命令启动Nexus
在这里插入图片描述
假如启动失败,可以将解压后的目录全部删除,然后重新解压,重新启动。
当看到如图中出现Started Sonatype Nexus OSS *,即启动成功。

④ 首页地址:http://localhost:8081/,8081为默认端口号
在这里插入图片描述

⑤ 登录,输入账号密码,账号默认为admin,密码则已经在登陆页面给出了地址,直接去找个地址找即可。
在这里插入图片描述

⑥ 登录后点Next后需要更新你的密码
在这里插入图片描述
⑦ 是否允许匿名访问,这个看个人需求,我这里就选择不允许匿名访问了
在这里插入图片描述
⑧ Nexus上的各种仓库
在这里插入图片描述

仓库类型说明
proxy某个远程仓库的代理
group存放:通过 Nexus 获取的第三方 jar 包
hosted存放:本团队其他开发人员部署到 Nexus 的 jar 包
仓库名称说明
maven-centralNexus 对 Maven 中央仓库的代理
maven-publicNexus 默认创建,供开发人员下载使用的组仓库
maven-releasesNexus 默认创建,供开发人员部署自己 jar 包的宿主仓库 要求 releases 版本
maven-snapshotsNexus 默认创建,供开发人员部署自己 jar 包的宿主仓库 要求 snapshots 版本

初始状态下,这几个仓库都没有内容。

3. 如何使用Nexus私服

3.1 通过Nexus下载Jar包

① 修改本地Maven的配置文件,修改镜像源为Nexus私服

<mirror>
	<id>nexus-mine</id><!-- 唯一id,可以自定义 -->
	<mirrorOf>central</mirrorOf><!-- 中心仓库 -->
	<name>Nexus mine</name><!-- 镜像名,可以自定义 -->
	<url>http://localhost:8081/repository/maven-public/</url> <!-- Nexus仓库地址 -->
</mirror>

其中url中地址来源:
在这里插入图片描述
② 如果Nexus开启了禁止匿名访问,那么还有继续配置settings.xml

<server>
  <id>nexus-mine</id><!-- 唯一id,mirror处自定义的id-->
  <username>admin</username><!-- Nexus的账号-->
  <password>123456</password><!-- Nexus的密码 -->
</server>

③ (可选)给Nexus私服配置阿里云镜像: 设置⚙ --> Repository --> 单击maven-center --> maven-central --> 修改镜像源地址
如果觉得下载慢,可以改成阿里云镜像:http://maven.aliyun.com/nexus/content/groups/public/
在这里插入图片描述在这里插入图片描述
然后就可以从私服下载了。

3.2 将Jar包部署到Nexus

① 在项目的pom.xml文件中加配置:

<distributionManagement>
    <snapshotRepository>
        <id>nexus-mine</id><!-- 唯一id,与maven中配置文件的mirror处自定义的id对应 -->
        <name>Nexus Snapshot</name><!-- 自己起名-->
        <url>http://localhost:8081/repository/maven-snapshots/</url><!-- snapshots版本的仓库地址-->
    </snapshotRepository>
</distributionManagement>

② 执行mvn deploy 或直接在IDEA的maven可视化中去双击deploy

3.3 引用别人部署的jar包

在项目的pom.xml中可以指定从哪个镜像源下载jar包:

<repositories>
    <repository>
        <id>nexus-mine</id>
        <name>nexus-mine</name>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot+vue的高校危化试剂仓储系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的高校危化试剂仓储系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#x…

01_04_JavaWEB02_JavaScript

JavaScript 参考尚硅谷再总结复习 一 JS简介 1.1 JS起源 Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言&#xff0c;主要目的是为了解决服务器端语言&#xff0c;遗留的速度问题&#xff0c;为客户提供…

Linux多线程之线程同步

(&#xff61;&#xff65;∀&#xff65;)&#xff89;&#xff9e;嗨&#xff01;你好这里是ky233的主页&#xff1a;这里是ky233的主页&#xff0c;欢迎光临~https://blog.csdn.net/ky233?typeblog 点个关注不迷路⌯▾⌯ 目录 一、线程同步的概念 二、条件变量 1.概念 2…

中型企业运维总监的成本优化实战案例——自建IDC机房

早期互联网快速发展的时候&#xff0c;相关领域的公司更注重拓展业务。 为了快速占领市场&#xff0c;他们往往投入了较高的成本。 但近年来&#xff0c;随着互联网人口红利的逐渐消退以及疫情的影响&#xff0c;越来越多的企业开始重视成本管理&#xff0c;从“粗放式经营”向…

使用J-Link Commander通过J-LINK以命令的形式来访问ARM通用MCU

通常我们的操作是写好程序然后将程序下载到芯片里面&#xff0c;然后运行程序来进行相应的操作&#xff0c;其实还可以使用 J − L i n k C o m m a n d e r J-Link\quad Commander J−LinkCommander通过 J − L I N K J-LINK J−LINK以命令的形式来简单访问ARM通用MCU&#xf…

Hadoop运行搭建——系统配置和Hadoop的安装

Hadoop运行搭建 前言&#xff1a; 本文原文发在我自己的博客小站&#xff0c;直接复制文本过来&#xff0c;所以图片不显示(我还是太懒啦&#xff01;)想看带图版的请移步我的博客小站~ Linux镜像&#xff1a;CentOS7 系统安装&#xff1a;CentOS安装参考教程 系统网卡设置…

微信私信短剧机器人源码

本源码仅提供参考&#xff0c;有能力的继续开发 接口为api调用 云端同步 https://ys.110t.cn/api/ajax.php?actyingshilist 影视搜索 https://ys.110t.cn/api/ajax.php?actsearch&name剧名 每日更新 https://ys.110t.cn/api/ajax.php?actDaily 反馈接口 https://ys.11…

SpringCloud-Alibaba-Nacos教程

SpringCloud-Alibaba-Nacos教程 下载地址 https://github.com/alibaba/nacos/releases/tag/2.2.3 直接进入bin包 运行cmd命令 startup.cmd -m standalone 运行成功后 进入nacos可视化页面 账号密码默认都是nacos http://localhost:8848/nacos 微服务入驻Nacos服务注册…

从 iPhone 设备恢复误删微信消息的 4 种方法

您的微信消息可能会因无意删除、系统崩溃、卸载微信应用或升级过程失败而被删除。如果您遇到这种情况&#xff0c;您不必担心&#xff0c;因为您可以采取某些步骤来恢复丢失的微信历史记录。这里有 4 种方法可以帮助您从 iPhone恢复丢失的微信消息、群聊历史记录或微信联系人。…

JMH287亲测【鸣潮】一键内测风景端V1.0.2已整理并录制视频教学

资源介绍&#xff1a; 否需要虚拟机&#xff1a;否 文件大小&#xff1a;压缩包约15G 支持系统&#xff1a;win7、win10、win11 硬件需求&#xff1a;运行内存16G 4核及以上CPU独立显卡 资源截图&#xff1a; 下载地址&#xff1a; JMH287【鸣潮】一键端 [V1.0.2]

算法学习08:Trie树(字典树)、并查集

算法学习08&#xff1a;Trie树&#xff08;字典树&#xff09;、并查集 文章目录 算法学习08&#xff1a;Trie树&#xff08;字典树&#xff09;、并查集前言一、Trie树&#xff08;字典树&#xff09;二、并查集1.例题1&#xff1a;合并 判断2.例题2&#xff1a;合并 判断 …

ChatGPT发不出消息?GPT发不出消息怎么办?

前言 今天发现&#xff0c;很多人的ChatGPT无法发送信息&#xff0c;我就登陆看一下自己的GPT的情况&#xff0c;结果还真的无法发送消息&#xff0c;ChatGPT 无法发送消息&#xff0c;但是能查看历史的对话&#xff0c;不过通过下面的方法解决了。 第一时间先打开官方的网站&a…

STM32---通用定时器(一)理论基础

写在前面&#xff1a;在STM32F103中有众多的定时器&#xff0c;其中包括两个基本定时器&#xff0c;基本定时器的内容已经在上节进行了介绍&#xff0c;基本定时器的功能、结构、使用都较为简单。而STM32F1中还含有4个通用定时器&#xff08;TIM2\3\4\5&#xff09;,这些定时器…

Unity零基础到进阶 | Unity中 屏蔽指定UI点击事件 的多种方法整理

Unity零基础到进阶 | Unity中 屏蔽指定UI点击事件 的多种方法整理一、Unity中 屏蔽透明区域的点击事件1.1 使用Image组件自带的参数检测1.2 根据点击的坐标计算该点的像素值是否满足阈值 二、Unity中屏蔽 不规则图片按钮点击的事件 总结 &#x1f3ac; 博客主页&#xff1a;htt…

剑指offer经典题目整理(二)

一、斐波那契数列&#xff08;fib&#xff09; 1.链接 斐波那契数列_牛客题霸_牛客网 (nowcoder.com) 2.描述 斐波那契数列就是数列中任意一项数字&#xff0c;都会等于前两项之和&#xff0c;满足f(n) f(n-1) f(n-2) 的一个数列&#xff0c;例如&#xff1a;1 1 2 3 5 8…

JVM知识整体学习

前言&#xff1a;本篇没有任何建设性的想法&#xff0c;只是我很早之前在学JVM时记录的笔记&#xff0c;只是想从个人网站迁移过来。文章其实就是对《深入理解JVM虚拟机》的提炼&#xff0c;纯基础知识&#xff0c;网上一搜一大堆。 一、知识点脑图 本文只谈论HotSpots虚拟机。…

2024年腾讯云8核16G服务器性能测试和并发数测试

腾讯云8核16G轻量服务器CPU性能如何&#xff1f;18M带宽支持多少人在线&#xff1f;轻量应用服务器具有100%CPU性能&#xff0c;18M带宽下载速度2304KB/秒&#xff0c;折合2.25M/s&#xff0c;系统盘为270GB SSD盘&#xff0c;月流量3500GB&#xff0c;折合每天116.6GB流量&…

开源的Java图片处理库介绍

在 Java 生态系统中&#xff0c;有几个流行的开源库可以用于图片处理。这些库提供了丰富的功能&#xff0c;如图像缩放、裁剪、颜色调整、格式转换等。以下是几个常用的 Java 图片处理库的介绍&#xff0c;包括它们的核心类、主要作用和应用场景&#xff0c;以及一些简单的例子…

spring-cloud-openfeign 3.0.0之前版本(对应spring boot 2.4.x之前版本)feign配置加载顺序

在之前写的文章配置基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 下图为自己整理的

Linux:kubernetes(k8s)prestop事件的使用(10)

他的作用是在结束pod容器之后进行的操作 apiVersion: v1 # api文档版本 kind: Pod # 资源对象类型 metadata: # pod相关的元数据&#xff0c;用于描述pod的数据name: nginx-po # pod名称labels: # pod的标签type: app #这个是随便写的 自定义的标签version: 1.0.0 #这个…