【Maven】008-Maven 私服搭建与使用

这篇具有很好参考价值的文章主要介绍了【Maven】008-Maven 私服搭建与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Maven】008-Maven 私服搭建与使用

一、概述

1、简介

Maven私服(Repository Manager)是一个用于管理和分发构建制品(如JAR、WAR、POM文件等)的服务器。它允许团队在本地搭建一个中央存储库,用于保存和分享项目构建所需的依赖项。一些常见的Maven私服产品包括 Nexus、Artifactory 和 Apache Archiva 。

2、建立私服后依赖查找和下载逻辑

第一步:请求本地仓库

  • 当用户需要某个构件时,首先会检查本地仓库是否已经存在所需构件。
  • 如果本地仓库中已经有所需构件,系统将直接从本地仓库获取,无需进行远程请求。

第二步:请求 Maven 私服

  • 如果本地仓库中不存在所需构件,用户的请求将转向 Maven 私服。
  • Maven 私服会检查自身的仓库,如果存在所需构件,将其下载到本地仓库,并返回给用户。

第三步:请求外部远程仓库(远程中央仓库等)

  • 如果 Maven 私服也没有所需构件,系统将尝试从外部的远程仓库(通常是中央仓库)中获取。
  • 如果外部远程仓库存在所需构件,Maven 私服会将该构件下载并缓存到自身的仓库中,然后将构件返回给用户。
  • 如果外部远程仓库中也不存在所需构件,Maven 将报错,指示找不到所需的依赖项。

参考图

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

3、Maven 私服的优势

  1. 加速构建过程: Maven 私服允许团队在本地搭建一个中央存储库,使得构建时可以优先从局域网内的私服获取依赖项,从而减少对外部远程仓库的依赖,加速构建过程。
  2. 降低对外部网络的依赖性: 私服允许团队在没有互联网连接或网络较差的情况下进行构建。依赖项的本地缓存和私服的存在减少了对外部网络的依赖性,提高了项目的可靠性。
  3. 统一依赖管理: 通过私服,团队可以统一管理和控制项目所需的依赖项版本,确保整个团队使用相同的构建制品,降低了版本冲突和不一致性的可能性。
  4. 安全性: 私服可以提供访问控制和安全认证机制,限制对仓库的访问,确保只有授权的人员能够发布和获取构建制品。这有助于保护项目的代码和依赖项的安全性。
  5. 本地镜像和缓存: 私服可以缓存外部远程仓库中的构建制品,降低了从外部仓库获取依赖项的延迟。此外,私服还可以配置为本地镜像,提供更快速的下载。
  6. 离线部署: Maven 私服支持离线部署,使得在没有互联网连接的环境中也能够构建和部署项目,适用于一些安全要求较高或隔离网络的场景。

4、Maven 私服常用的产品

  1. Nexus(当前最流行、使用最广泛):
    • Nexus 是 Sonatype 公司推出的一款流行的 Maven 私服产品。
    • 提供强大的仓库管理和安全性功能。
    • 支持多种仓库格式,包括Maven、npm、Docker等。
  2. Artifactory:
    • Artifactory是JFrog公司开发的另一款领先的构建制品仓库管理工具。
    • 支持各种包括 Maven、Gradle、npm 等的构建工具。
    • 具有高度可伸缩性和灵活的部署选项。
  3. Apache Archiva:
    • Apache Archiva 是由 Apache 软件基金会提供的开源 Maven 私服工具。
    • 提供基本的仓库管理功能,适用于小型项目或对简单配置有需求的团队。

二、Nexus 下载、安装、初始设置

1、下载

地址

https://help.sonatype.com/repomanager3/product-information/download

目标

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

2、安装

第一步:解压到一个目录

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

第二步:启动

使用管理员身份打开 CMD ,切换到 bin 目录。

命令:

  • 安装:nexus.exe /install bm-maven
  • 启动:nexus.exe /start bm-maven
  • 停止:nexus.exe /stop bm-maven
  • 卸载:nexus.exe /uninstall bm-maven

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

第三步:访问 http://localhost:8081/

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

3、初始设置

登录

用户名:admin

密码:(在 Nexus\sonatype-work\nexus3\admin.password )

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

根据提示设置新密码

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

禁用匿名登录

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

初始化完成后

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

三、Nexus 上的仓库

1、仓库

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

2、仓库类型&说明

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

3、仓库名称&说明

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

4、初始状态仓库内为空

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

四、通过 Nexus 下载 jar 包

1、将中央仓库地址设置为阿里云镜像地址

为了加快国内下载速度!

第一步:选择要修改的仓库

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

第二步:修改地址为阿里云镜像地址

http://maven.aliyun.com/nexus/content/groups/public/

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

第三步:保存配置

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

2、将本机 Maven 配置的阿里云镜像地址改成自己的私服地址

第一步:拷贝自己的私服仓库地址

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

第二步:修改本机 Maven 配置的阿里云镜像地址

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

第三步:添加访问用户名密码

我们设置了禁止匿名访问!

这里需要格外注意:server 标签内的 id 标签值必须和 mirror 标签中的 id 值一样。

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

3、通过 Nexus 下载 jar 包

第一步:修改本机 Maven 仓库地址

因为原本的仓库里面可能已经有很多内容了,为了直观,新建一个本地空仓库(一个空文件夹),让 Maven 直接向私服获取依赖!

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

第二步:在 Maven 工程下执行 Maven 命令

mvn clean compile

部分下载过程日志:

......
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.jar (217 kB at 42 kB/s)
Downloading from zibo-nexus-maven: http://localhost:8081/repository/maven-central/junit/junit/3.8.2/junit-3.8.2.jar
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/log4j/log4j/1.2.12/log4j-1.2.12.jar (358 kB at 63 kB/s)
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar (45 kB at 7.9 kB/s)
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.jar (134 kB at 23 kB/s)
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/junit/junit/3.8.2/junit-3.8.2.jar (121 kB at 21 kB/s)
Downloaded from zibo-nexus-maven: http://localhost:8081/repository/maven-central/com/google/collections/google-collections/1.0/google-collections-1.0.jar (640 kB at 89 kB/s)
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\MyFile\IDEAProjects\mvn-demo\demo1\target\classes
[INFO]
[INFO] ---------------------------< com.zibo:demo2 >---------------------------
[INFO] Building demo2 1.0-SNAPSHOT                                        [3/3]
[INFO]   from demo2\pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ demo2 ---
[INFO] Deleting D:\MyFile\IDEAProjects\mvn-demo\demo2\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ demo2 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ demo2 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to D:\MyFile\IDEAProjects\mvn-demo\demo2\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for mvn-demo 1.0-SNAPSHOT:
[INFO]
[INFO] mvn-demo ........................................... SUCCESS [  8.613 s]
[INFO] demo1 .............................................. SUCCESS [01:22 min]
[INFO] demo2 .............................................. SUCCESS [  0.079 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:31 min
[INFO] Finished at: 2024-01-14T13:26:44+08:00
[INFO] ------------------------------------------------------------------------

第三步:查看私服仓库

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

五、将 jar 包部署到 Nexus

如出现问题,请调整下面配置。

1、Maven 工程中配置

注意:这里 repository 和 snapshotRepository 的 id 标签必须和 settings.xml 中指定的 mirror 标签的 id 属性一致。

<distributionManagement>
    <!-- 部署正式版本(Release):mvn clean deploy -->
    <repository>
        <id>zibo-nexus-maven</id>
        <name>zibo nexus maven releases</name>
        <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
    <!-- 部署快照版本(Snapshot):mvn clean deploy -DrepositoryId=zibo-nexus-maven -->
    <snapshotRepository>
        <id>zibo-nexus-maven</id>
        <name>zibo nexus maven</name>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

2、执行部署命令

mvn deploy

执行日志

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

私服

【Maven】008-Maven 私服搭建与使用,Maven,maven,java

六、引用别人部署的 jar 包

1、Maven 工程中配置

<dependencies>
    <dependency>
        <groupId>com.zibo</groupId>
        <artifactId>demo1</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

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

2、打包日志

【Maven】008-Maven 私服搭建与使用,Maven,maven,java文章来源地址https://www.toymoban.com/news/detail-798389.html

到了这里,关于【Maven】008-Maven 私服搭建与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Maven私服搭建Nexus3

    下载地址 :https://help.sonatype.com/en/download.html 备用下载链接,部分已经失效了 解压后会有两个文件夹: nexus-3.20.1-01 sonatype-work 访问地址配置路径 nexus-3.20.1-01binnexus.vmoptions 默认配置大小为2703m,两个多G,内存不够的可以修改一下。 如果是docker部署修改配置没用,要加上-e参

    2024年02月22日
    浏览(33)
  • linux 搭建 nexus maven私服

    目录 环境: 下载 访问百度网盘链接 官网下载 部署 :  进入目录,创建文件夹,进入文件夹 将安装包放入nexus文件夹,并解压​编辑 启动 nexus,并查看状态.​编辑 更改 nexus 端口为7020,并重新启动,访问虚拟机7020 更换账号密码,浏览器点击 sign in看到提示密码,在/usr/local/n

    2024年02月12日
    浏览(36)
  • 超级完整 的 Maven 讲解 以及私服搭建

    1.1、Maven 概述 Maven 是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven 就可以自动完成项目的编译、测试、打包、发布以及部署等工作。 Maven 是使用 Java 语言编写的,因此它和

    2024年02月06日
    浏览(37)
  • 新手入门Win-Server下Maven私服nexus的搭建、使用与配置,这一篇就够了

    近期项目上有需要搭建一个maven私服仓库,于是自己试着弄了一下,踩了一些坑,特此想发布一篇教程,并提供资源,方便大家遇到类似的情况时能够快速完成工作; 关于nexus的介绍,这里不多废话了,感兴趣的可以去官网自己查看。 一、先要去下载nexus安装包 https://www.son

    2024年02月02日
    浏览(29)
  • 【仓库管理】搭建 Maven 私服之一--Nexus仓库(Repository)管理软件

    Nexus 读音:/ˈneksəs/是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为“Maven仓库管理器”。 Maven 私服其实并不是 Maven 的核心概念,它仅仅是一种衍生出来的特殊的仓库,但这并不代表它不重要,相反由于私服具有降低中央仓

    2024年01月17日
    浏览(42)
  • Maven学习1_将项目打包jar然后上传到GitHub、Nexus Sonatype仓库、搭建Sonatype私服

    概述 主要学习记录Maven仓库相关知识,如何借助上传项目jar包到GitHub、Nexus Sonatype,,以及搭建自己的Nexus Sonatype私服,然后在Maven项目的pom文件引入使用,参考Maven官网文档:https://central.sonatype.org/publish/publish-maven/ 需要了解:Maven中央仓库并不支持直接发布jar 包,需要将jar 包

    2024年02月15日
    浏览(33)
  • 使用docker-maven-plugin插件构建镜像并推送至私服Harbor

    如下所示,建议使用 Dockerfile Maven 插件,但该插件也停止维护更新了。因此先暂时使用 docker-maven-plugin 插件。 默认的dokcer是不支持远程访问的,需要加点配置,开启Docker的远程访问 确定docker配置文件位置在:/etc/systemd/system/docker.service 然后编辑修改docker配置文件: 找到包含

    2024年02月11日
    浏览(49)
  • Nexus私服,使用Maven上传到仓库时提示xx/metadata.xml响应码 502

            宝塔、使用宝塔环境安装的Nginx、使用Nginx转发到Nexus。     Nginx转发时,Nexus响应错误码为404,但是Nginx返回给客户端的响应码是502。     * 如果响应码是404则表示没有,Maven会按照服务器端没有依赖库处理,但是返回的502表示服务器错误maven则不再继续向后处理。     

    2024年02月21日
    浏览(33)
  • 【前车之鉴】: 2023最新教程-将java程序打包到maven私服的正确打开方式,详细流程介绍不怕你掌握不了

    一是当前网络上一些博客有遗漏部分,这里做补充,二是网上思路没错,但是有些关键配置maven官方做了变更,其三:更详细,更面向初次使用的developer 上图所示的步骤基本就是本文的框架,其实打包逻辑比较清晰,仅仅是过程复杂,但有过公司开发经历的同学应该能get到这

    2024年02月11日
    浏览(29)
  • Maven之私服

    团队开发现状分析 私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题 Nexus Sonatype公司的一款maven私服产品 下载地址:https://help.sonatype.com/repomanager3/download win版安装包:https://pan.baidu.com/s/1wkp-z0Vw8i14aS9kqni8ZA?pwd=0630 1.2 Nexus安装与启动 启动:在安装目录中的

    2024年01月24日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包