Maven私服

1 Maven私服简介

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

1.1 下载构件顺序

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

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

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

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

2 Nexus下载安装

在Nexus下载所需的安装包,并解压到按照路径下即可。
以管理员身份打开CMD,进入bin目录下,执行./nexus /run命令启动,启动成功如图所示:
在这里插入图片描述
访问 Nexus 首页,地址为http://localhost:8081/,8081为默认端口号。
在这里插入图片描述

2.1 Nexus登录

在这里插入图片描述
此处的用户名为admin,密码存储在nexus安装路径下admin.password文件中,如D:\DevProgramFiles\nexus-3.61.0-02-win64\sonatype-work\nexus3\admin.password文件中。
登录后的nexus设置:
在这里插入图片描述
设置新密码
在这里插入图片描述
设置是否匿名访问(禁用匿名访问)
在这里插入图片描述
完成配置:
在这里插入图片描述

2.2 Nexus中的仓库介绍

在这里插入图片描述

  • 仓库名称
仓库名称说明
maven-centralNexus 对 Maven 中央仓库的代理
maven-publicNexus 默认创建,供开发人员下载使用的组仓库
maven-releasesNexus 默认创建,供开发人员部署自己 jar 包的宿主仓库 要求 releases 版本
maven-snapshotsNexus 默认创建,供开发人员部署自己 jar 包的宿主仓库 要求 snapshots 版本

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

  • 仓库类型
仓库类型说明
proxy某个远程仓库的代理
group存放:通过 Nexus 获取的第三方 jar 包
hosted存放:本团队其他开发人员部署到 Nexus 的 jar 包

3 通过Nexus下载jar包

3.1 配置仓库地址
  • 配置mirror镜像地址为当前的nexus仓库地址
    如果配置了其他的仓库地址,替换为如下配置。
<mirror><id>nexus-mine</id><mirrorOf>central</mirrorOf><name>Nexus mine</name><url>http://localhost:8081/repository/maven-public/</url>
</mirror>
3.2 设置访问用户和密码

由于不支持匿名访问,因此需要在settings.xml文件中的servers标签中配置访问的用户名和密码

<server><id>nexus-mine</id><username>admin</username><password>123456</password>
</server>

注意: server 标签内的 id 标签值必须和 mirror 标签中的 id 值一样。

3.3 jar包的上传和下载

此时mvn clean compile项目,会发现下载jar包并上传到nexus:

Downloading from nexus-mine: http://localhost:8081/repository/maven-public/org/codehaus/plexus/plexus-compiler-api/2.8.4/plexus-compiler-api-2.8.4.jar
Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/commons-io/commons-io/2.5/commons-io-2.5.jar (209 kB at 11 kB/s)
Downloading from nexus-mine: http://localhost:8081/repository/maven-public/org/codehaus/plexus/plexus-compiler-manager/2.8.4/plexus-compiler-manager-2.8.4.jar
Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/org/codehaus/plexus/plexus-compiler-manager/2.8.4/plexus-compiler-manager-2.8.4.jar (4.7 kB at 227 B/s)
Downloading from nexus-mine: http://localhost:8081/repository/maven-public/org/codehaus/plexus/plexus-compiler-javac/2.8.4/plexus-compiler-javac-2.8.4.jar
Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/org/ow2/asm/asm/6.2/asm-6.2.jar (111 kB at 5.3 kB/s)
Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/org/codehaus/plexus/plexus-java/0.9.10/plexus-java-0.9.10.jar (39 kB at 1.8 kB/s)
Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/com/thoughtworks/qdox/qdox/2.0-M9/qdox-2.0-M9.jar (317 kB at 14 kB/s)
Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/org/codehaus/plexus/plexus-compiler-api/2.8.4/plexus-compiler-api-2.8.4.jar (27 kB at 1.2 kB/s)
Downloaded from nexus-mine: http://localhost:8081/repository/maven-public/org/codehaus/plexus/plexus-compiler-javac/2.8.4/plexus-compiler-javac-2.8.4.jar (21 kB at 938 B/s)
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to D:\DevWorkspace\IntelliJIDEAWS\giser-java\giser-java-common\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  05:16 min
[INFO] Finished at: 2023-12-23T20:45:41+08:00
[INFO] ------------------------------------------------------------------------

此时再次查看Nexus服务器,对应的仓库中就有了jar包了。如下:
在这里插入图片描述

3.4 更新中央仓库地址

上述下载实际上是通过Maven中央仓库下载,然后上传到nexus,再下载到本地的。为了提高下载速度,可以修改中央仓库地址为国内的镜像地址,如阿里云镜像地址。
在这里插入图片描述
将④处的地址改为阿里云镜像仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
原始地址为:https://repo1.maven.org/maven2/

4 通过Nexus部署jar包

在Maven工程中配置如下信息:

<distributionManagement><snapshotRepository><id>nexus-mine</id><name>Nexus Snapshot</name><url>http://localhost:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>

**注意:**这里 snapshotRepository 的 id 标签必须和 settings.xml 中指定的 mirror 标签的 id 属性一致。
执行部署命令mvn deploy即可。

Uploading to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/giser/giser-java-common/1.0-SNAPSHOT/giser-java-common-1.0-20231223.130426-1.pom
Uploaded to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/giser/giser-java-common/1.0-SNAPSHOT/giser-java-common-1.0-20231223.130426-1.pom (1.7 kB at 4.5 kB/s)
Downloading from nexus-mine: http://localhost:8081/repository/maven-snapshots/com/giser/giser-java-common/maven-metadata.xml
Uploading to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/giser/giser-java-common/1.0-SNAPSHOT/maven-metadata.xml
Uploaded to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/giser/giser-java-common/1.0-SNAPSHOT/maven-metadata.xml (770 B at 1.1 kB/s)
Uploading to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/giser/giser-java-common/maven-metadata.xml
Uploaded to nexus-mine: http://localhost:8081/repository/maven-snapshots/com/giser/giser-java-common/maven-metadata.xml (284 B at 361 B/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:53 min
[INFO] Finished at: 2023-12-23T21:04:29+08:00
[INFO] ------------------------------------------------------------------------Process finished with exit code 0

此时再次查看Nexus服务器,对应的仓库中就有部署的jar包了。如下:
在这里插入图片描述

4 引用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>

这样就可以通过坐标直接引用jar包了。

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

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

相关文章

nginx配置文件中参数的作用

####默认的nobody&#xff0c;没有访问目录权限&#xff0c;然后指定有权限的用户 ####user nobody; ####一般一个进程足够了&#xff0c;你可以把连接数设得很大。 ####如果有SSL、gzip这些比较消耗CPU的工作&#xff0c;而且是多核CPU的话&#xff0c;可以设为和CPU的数量一…

TCP/IP协议--ARP协议(有了IP地址为什么还需要ARP协议)

首先我们需要先大致了解一下MAC地址&#xff0c;MAC&#xff08;Media Access Control, 介质访问控制&#xff09;地址是烧录在Network Interface Card(网卡,NIC)里的,也叫硬件地址,是由48比特长(6字节),16进制的数字组成.0-23位叫做组织唯一标志符(organizationally unique &a…

Unity3d--跨平台(一)

转自&#xff1a;https://www.cnblogs.com/murongxiaopifu/p/4211964.html前言&#xff1a; 其实小匹夫在U3D的开发中一直对U3D的跨平台能力很好奇。到底是什么原理使得U3D可以跨平台呢&#xff1f;后来发现了Mono的作用&#xff0c;并进一步了解到了CIL的存在。所以&#xff0…

linux定时任务的用法详解

crontab的基本格式&#xff1a; f1  f2  f3  f4  f5  command 分  时 日  月  周  命令 第一列f1代表分钟1~59&#xff1a;当f1为表示每分钟都要执行&#xff1b;为/n表示每n分钟执行一次&#xff1b;为a-b表示从第a分钟到第b分钟这段时间要执行&#xff1b;为a,…

Unity3d-跨平台(二)

转自&#xff1a;http://www.jiandaima.com/blog/archives/945.html 是如何输出到多平台的&#xff1f; 我的第一篇文章&#xff0c;选择了一个不那么简单的主题&#xff0c;但是是我近期比较感兴趣的。这周&#xff0c;我和一个朋友&#xff0c;谈到了游戏开发和Unity3D&#…

lua的作用

轻量级: 它用标准C语言编写并以源代码形式开放&#xff0c;编译后仅仅一百余K&#xff0c;可以很方便的嵌入别的程序里。 可扩展: Lua提供了非常易于使用的扩展接口和机制&#xff1a;由宿主语言(通常是C或C)提供这些功能&#xff0c;Lua可以使用它们&#xff0c;就像是本来就内…

Almost Arithmetical Progression

Description Gena loves sequences of numbers. Recently, he has discovered a new type of sequences which he called an almost arithmetical progression. A sequence is an almost arithmetical progression, if its elements can be represented as: a1  p, where p i…

svn冲突解决方案

解决方法 步骤一、清空svn的队列 1、进入到项目的.svn目录中&#xff0c;查看是否存在wc.db文件 C:\Users\Administrator>D:D:\>cd D:\BBK_SVN\I3_TrunkD:\BBK_SVN\I3_Trunk>cd .svnD:\BBK_SVN\I3_Trunk\.svn>dirVolume in drive D has no label.Volume Serial Nu…

redis集群搭建与配置

redis集群搭建与配置

VS编译快捷键设置

1.编译当前文件----AltZ(生成.编译)&#xff1b; 2.编译当前项目----AltA(生成.仅生成项目)&#xff1b; 3.链接当前项目----AltX(生成.链接)&#xff1b; 4.生成选定内容----AltD(生成.生成选定内容)&#xff1b;

keepalived的安装与添加服务

keepalived的安装与添加服务

做一个“多人在线编辑器”,你会怎么开始

看似只是一个简单的问题&#xff0c;但是其中却隐含了非常多的知识&#xff0c;对于“多人在线编辑器”这么一个产品来说&#xff0c;如果让你来负责设计并开发&#xff0c;你会怎么去开始一步步展开工作&#xff0c;其中主要考察的并不是让你迅速的不假思索的说运用什么技术&a…

Mr. Bender and Square

Description Mr. Bender has a digital table of size n  n, each cell can be switched on or off. He wants the field to have at least c switched on squares. When this condition is fulfilled, Mr Bender will be happy. Well consider the table rows numbered from…

nginx_keepalived配置(转载保存)

文章链接&#xff1a; https://blog.csdn.net/yabingshi_tech/article/details/52038332

IT技术网站

GitChat : http://gitbook.cn/ CSDN: https://blog.csdn.net/nav/career 知乎&#xff1a; https://www.zhihu.com/ 简书&#xff1a; https://www.jianshu.com/ 程序师&#xff1a; http://www.techug.com/ 酷壳&#xff1a;https://www.baidu.com/link…

A Simple Job

描述 Institute of Computational Linguistics (ICL), Peking University is an interdisciplinary institute of science and liberal arts, it focuses primarily on the fundamental researches and applications of language information processing. The research of ICL …

keepalived+nginx保持高可用配置

安装nginx、keepalived nginx安装 keepalived安装与添加服务在/etc/keepalived目录下新建nginx_check.sh&#xff08;两台服务器都需要&#xff09; 配置keepalived.conf: #配置邮箱 global_defs {notification_email {# acassenfirewall.loc# failoverfirewall.loc# sysadmin…

How-To-Ask-Questions-The-Smart-Way

转自&#xff1a;https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md 提问的智慧 How To Ask Questions The Smart Way Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen 本指南英文版版权为 Eric S. Raymond, Rick Mo…

The Book List

描述 The history of Peking University Library is as long as the history of Peking University. It was build in 1898. At the end of year 2015, it had about 11,000 thousand volumes of books, among which 8,000 thousand volumes were paper books and the others w…

nginx+keepalived详细配置信息

Nginx Keepalived 第一步&#xff1a; 下载keepalived地址&#xff1a;http://www.keepalived.org/download.html 解压安装&#xff1a; tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/ yum install -y openssl openssl-devel&#xff08;需要安装一个软件包&#xff09…