Maven第五章: 搭建maven私服以及如何进行管理?

这篇具有很好参考价值的文章主要介绍了Maven第五章: 搭建maven私服以及如何进行管理?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Maven第五章: 搭建maven私服以及如何进行管理?

前言

nexus是什么?

Nexus是Sonatype公司发布的一款仓库(Repository)管理软件,常用来搭建Maven私服,所以也有人将Nexus称为“Maven仓库管理器”。 Maven私服其实并不是Maven的核心概念,它仅仅是一种衍生出来的特殊的仓库,但这并不代表它不重要,相反由于私服具有降低中央仓库负荷、节省外网带宽、以及提高项目稳定性等优点,使得私服在实际开发过程中得到了相当普遍地使用。能够帮助我们建立私服的软件被称为Maven仓库管理器,主要有以下3种:Apache Archiva、JFrog Artifactory、Sonatype Nexus。其中,Sonatype Nexus是当前最流行,使用最广泛的Maven仓库管理器。 Nexus分为开源版和专业版,其中开源版足以满足大部分Maven用户的需求。

Nexus和远程仓库的关系?
  1. 代理远程仓库:Nexus作为Maven仓库管理器,可以代理远程仓库。这意味着Nexus可以存储和提供远程仓库的构件,供局域网内的Maven用户使用。
  2. 缓存构件:当Maven需要下载构件时,它会首先从Nexus请求。如果Nexus上不存在该构件,那么它会从外部的远程仓库下载,缓存到Nexus上之后,再为Maven的下载提供服务。这种缓存机制可以加速构件的下载速度,并减少对远程仓库的访问需求。
  3. 本地优先:Nexus的设计理念是本地优先(local-first),这意味着它更注重提供本地仓库的访问速度和可用性。当Maven请求构件时,Nexus会首先查找本地仓库中是否存在该构件,如果存在,则直接从本地仓库提供服务。只有在本地仓库不存在该构件时,才会从远程仓库下载。
  4. 可扩展性:Nexus可以与多个远程仓库建立连接,并可以配置不同的远程仓库源。这使得Nexus可以满足不同团队的需求,并可以根据实际情况扩展对更多远程仓库的支持。
  5. 安全性:Nexus可以提供对远程仓库的安全访问控制,例如使用HTTPS协议进行加密传输,验证远程仓库的身份等。这可以保护Maven用户的隐私和数据安全。
Nexus如何代理远程仓库?
  1. 配置远程仓库:在Nexus中,可以通过配置文件或界面来添加远程仓库的代理。通常需要提供远程仓库的URL、认证信息(如果有)以及其他相关参数。
  2. 同步远程仓库:当配置完成后,Nexus会通过定时任务或手动触发的方式同步远程仓库的内容。它会定期检查远程仓库的更新,并将更新的构件下载到本地仓库中。
  3. 提供本地服务:当Maven需要下载构件时,它会首先从Nexus请求。如果Nexus上不存在该构件,它会从外部的远程仓库下载,缓存到Nexus上之后,再为Maven的下载提供服务。如果Nexus上已经存在该构件,则直接提供本地服务。
  4. 缓存策略:Nexus通常会采用一些缓存策略来优化构件的存储和管理。例如,可以使用LRU(Least Recently Used)算法来管理本地缓存,将最近使用的构件存储在内存中,以提高访问速度。
  5. 安全性:Nexus可以提供对远程仓库的安全访问控制,例如使用HTTPS协议进行加密传输,验证远程仓库的身份等。这可以保护Maven用户的隐私和数据安全
安装

目前 Nexus 分为 Nexus 2.x 和 Nexus 3.x 两个大版本,它们是并行的关系,目前使用最多,运行最稳定的是 Nexus 2.x,下面我们以 Nexus 2.x 为例,演示 Nexus 的安装过程。

  1. 百度网盘下载 nexus-2.11.4-01-bundle.tar.gz ,官网下载不了

    http://pan.baidu.com/s/1mgznhd2

  2. 解压

[root@node3 ~]# tar -xvf nexus-2.11.4-01-bundle.tar.gz
  1. 进入解压目录

    [root@node3 ~]# cd nexus-2.11.4-01
    
  2. 查看配置文件

[root@node3 conf]# cat nexus.properties 
#
# Sonatype Nexus (TM) Open Source Version
# Copyright (c) 2008-2015 Sonatype, Inc.
# All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
#
# This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
# which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
#
# Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
# of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
# Eclipse Foundation. All other trademarks are the property of their respective owners.
#

# Sonatype Nexus
# ==============
# This is the most basic configuration of Nexus.

# Jetty section
application-port=8081
application-host=0.0.0.0
nexus-webapp=${bundleBasedir}/nexus
nexus-webapp-context-path=/nexus

# Nexus section
nexus-work=${bundleBasedir}/../sonatype-work/nexus
runtime=${bundleBasedir}/nexus/WEB-INF

  1. 启动

    [root@node3 bin]# ./nexus start
    ****************************************
    WARNING - NOT RECOMMENDED TO RUN AS ROOT
    ****************************************
    If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script.
    
    

    遇到上述问题,修改 nexus脚本,去掉注解

    RUN_AS_USER=root
    

    启动成功如下

    [root@node3 bin]# ./nexus start 
    ****************************************
    WARNING - NOT RECOMMENDED TO RUN AS ROOT
    ****************************************
    Starting Nexus OSS...
    Started Nexus OSS.
    
    
  2. 启动成功后打开浏览器输入:http://localhost:8081/nexus 默认账号和密码:用户名:admin 密码:admin123

Maven第五章: 搭建maven私服以及如何进行管理?,maven 系列专栏,maven,java,maven 知识全面教程

Nexus 仓库属性

点击左边导航栏中的 Repositories,可以看到 Nexus 自带的几个内置仓库,如下图所示。

Maven第五章: 搭建maven私服以及如何进行管理?,maven 系列专栏,maven,java,maven 知识全面教程

在仓库列表中,每个仓库都具有一系列属性:

  • Type:仓库的类型,Nexus 中有 4 中仓库类型:group(仓库组)、hosted(宿主仓库)、proxy(代理仓库)以及 virtual(虚拟仓库)。
  • Format:仓库的格式。
  • Policy:仓库的策略,表示该仓库是发布(Release)版本仓库还是快照(Snapshot)版本仓库。
  • Repository Status:仓库的状态。
  • Repository Path:仓库的路径。

由图 可知,Nexus 2.x 默认创建了 6 个仓库,我们称它们为 Nexus 内置仓库。

  • Maven Central:该仓库用来代理 Maven 中央仓库,其策略为 Release,只会下载和缓存中央仓库中的发布版本的构件。
  • Releases:策略为 Release 的宿主仓库,用来部署公司或组织内部的发布版本构件。
  • Snapshots:策略为 Snapshot 的宿主仓库,用来部署公司或组织内部的快照版本构件。
  • 3rd party:策略为 Release 的宿主仓库,用来部署第三方发布版本构件,这些构件一般无法从任何远程仓库中获得。
  • Public Repositories:该仓库组将上述所有存储策略为 Release 的仓库聚合并通过统一的地址提供服务。
Nexus 仓库分类

Nexus 仓库按照类型(Type)区分,主要分为以下 3 个类型:

  • 代理仓库(proxy):用来代理远程公共仓库,如 Maven 中央仓库、JBoss 远程仓库。

  • 宿主仓库(hosted):又称 Nexus 本地仓库,该仓库通常用来部署本地项目所产生的构件。

  • 仓库组(group):用来聚合代理仓库和宿主仓库,为这些仓库提供统一的服务地址,以便 Maven 可以更加方便地获得这些仓库中的构件。

为了更加直观的理解仓库组、代理仓库和宿主仓库的概念,我们通过下图展示它们的用途和区别。

Maven第五章: 搭建maven私服以及如何进行管理?,maven 系列专栏,maven,java,maven 知识全面教程

由上图可知:

  • Maven 可以直接从宿主仓库中下载构件。
  • Maven 也可以从代理仓库中下载构件,代理仓库会从远程仓库下载并缓存构件。
  • Maven 还可以从仓库组中下载构件,仓库组会从其包含的宿主仓库和代理仓库中获取构件。
IntelliJ IDE使用私服配置

修改setting.xml 添加如下:

</mirrors>
  <mirror>
     <id>central</id>
     <mirrorOf>*</mirrorOf>
     <name>Central Repository</name>
     <url>http://192.168.1.20:8081/nexus/content/groups/public/</url>
   </mirror>
 </mirrors>

修改 工程设置,一定要把user setting file 钩给勾上 . 这样工程就可以使用私服了

Maven第五章: 搭建maven私服以及如何进行管理?,maven 系列专栏,maven,java,maven 知识全面教程

IntelliJ IDE上传构建到私服

直接用 idea 中的 mvn deploy 按钮就可以将 打好的 jar 包或者 war包上传到 私服中 (mvn ckean install 是将jar包安装到本地仓库)

maven setting.xml 添加如下配置:

 <servers>  
   <server>
     <id>nexus-releases</id>
     <username>admin</username>
     <password>admin123</password>
   </server>
   <server>
     <id>nexus-snapshots</id>
     <username>admin</username>
     <password>admin123</password>
   </server>
 </servers>

工程pom.xml 添加如下配置:

<distributionManagement>
    <repository>
      <id>nexus-releases</id>
      <name>Nexus Release Repository</name>
      <url>http://192.168.1.20:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
      <id>nexus-snapshots</id>
      <name>Nexus Snapshot Repository</name>
      <url>http://192.168.1.20:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
  </distributionManagement>

提示:ID必须要一致,否则报错
Maven第五章: 搭建maven私服以及如何进行管理?,maven 系列专栏,maven,java,maven 知识全面教程文章来源地址https://www.toymoban.com/news/detail-714924.html

到了这里,关于Maven第五章: 搭建maven私服以及如何进行管理?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Maven 搭建私服

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

    2024年01月17日
    浏览(71)
  • linux 搭建 nexus maven私服

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

    2024年02月12日
    浏览(46)
  • 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日
    浏览(42)
  • 【Java架构-包管理工具】-Maven私服搭建-Nexus(三)

    Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven私服搭建-Nexus 使用Docker进行安装 拉取镜像 docker pull sonatype/nexus3 启动镜像 docker run -d -p 8081:8081 --name nexus -v /som

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

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

    2024年01月17日
    浏览(61)
  • 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日
    浏览(44)
  • 新手入门Win-Server下Maven私服nexus的搭建、使用与配置,这一篇就够了

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

    2024年02月02日
    浏览(40)
  • SpringBoot项目使用docker-maven-plugin插件构建docker镜像以及推送到docker hub或docker registry私服

    我们知道docker可将应用程序和基础设施层隔离,可更快地打包、测试以及部署应用程序。本文主要介绍SpringBoot项目如何构建docker镜像以及推送到私服或者docker hub服务器上。 本文介绍的方式是使用docker-maven-plugin的方式构建SpringBoot的docker镜像以及推送到私服或docker hub服务器上

    2024年02月16日
    浏览(46)
  • 如何在本地搭建Maven环境并整合进IDEA中以及创建web工程?【2023最新版】

    编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 使用Maven之前 : 自行在网络中下载iar包,效率较低 。如在谷歌、百度中搜素相关 jar包资源 使用Maven之后 : 统一在一个地址下载jar包等资源 。如使用阿里云镜像服务器下载等.… 使用Mave

    2024年02月02日
    浏览(69)
  • maven私服打包不成功

    配置多个mirror标签,默认也只生效第一个mirror标签,如果私服版本库不全,又想同时用其他仓库必须使用profile标签,再通过activeProfile激活多个profile配置,mirror配置可以清空,如下配置 一开始使用了idea自带的maven,一直打包不成功,后面换成自己的maven3.6版本则打包成功

    2024年02月11日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包