文章目录

  • 1 私服简介
  • 2 私服安装
    • 步骤1:下载解压
    • 步骤2:启动Nexus
    • 步骤3:浏览器访问
    • 步骤4:首次登录重置密码
  • 3 私服仓库分类
  • 4 本地仓库访问私服配置
    • 步骤1:私服上配置仓库
    • 步骤2:配置本地Maven对私服的访问权限
    • 步骤3:配置私服的访问路径
  • 5 私服资源上传与下载
    • 步骤1:配置工程上传私服的具体位置
    • 步骤2:发布资源到私服

这一节,我们主要学习的内容是:

  • 私服简介
  • 私服仓库分类
  • 资源上传与下载

首先来说一说什么是私服?

1 私服简介

团队开发现状分析

(1)张三负责ssm_crm的开发,自己写了一个ssm_pojo模块,要想使用直接将ssm_pojo安装到本地仓库即可

(2)李四负责ssm_order的开发,需要用到张三所写的ssm_pojo模块,这个时候如何将张三写的ssm_pojo模块交给李四呢?

(3)如果直接拷贝,那么团队之间的jar包管理会非常混乱而且容器出错,这个时候我们就想能不能将写好的项目上传到中央仓库,谁想用就直接联网下载即可

(4)Maven的中央仓库不允许私人上传自己的jar包,那么我们就得换种思路,自己搭建一个类似于中央仓库的东西,把自己的内容上传上去,其他人就可以从上面下载jar包使用

(5)这个类似于中央仓库的东西就是我们接下来要学习的私服

所以到这就有两个概念,一个是私服,一个是中央仓库

私服:公司内部搭建的用于存储Maven资源的服务器

远程仓库:Maven开发团队维护的用于存储Maven资源的服务器

所以说:

  • 私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题

搭建Maven私服的方式有很多,我们来介绍其中一种使用量比较大的实现方式:

  • Nexus

    • Sonatype公司的一款maven私服产品
    • 下载地址:https://help.sonatype.com/repomanager3/download

2 私服安装

步骤1:下载解压

资料\latest-win64.zip解压到一个空目录下。

步骤2:启动Nexus

使用cmd进入到解压目录下的nexus-3.30.1-01\bin,执行如下命令:

nexus.exe /run nexus

看到如下内容,说明启动成功。

步骤3:浏览器访问

访问地址为:

http://localhost:8081

步骤4:首次登录重置密码

输入用户名和密码进行登录,登录成功后,出现如下页面

点击下一步,需要重新输入新密码,为了和后面的保持一致,密码修改为admin

设置是否运行匿名访问

点击完成

至此私服就已经安装成功。如果要想修改一些基础配置信息,可以使用:

  • 修改基础配置信息

    • 安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息,例如默认访问端口。
  • 修改服务器运行配置信息
    • 安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器启动对应的配置信息,例如默认占用内存空间。

3 私服仓库分类

私服资源操作流程分析:

(1)在没有私服的情况下,我们自己创建的服务都是安装在Maven的本地仓库中

(2)私服中也有仓库,我们要把自己的资源上传到私服,最终也是放在私服的仓库中

(3)其他人要想使用你所上传的资源,就需要从私服的仓库中获取

(4)当我们要使用的资源不是自己写的,是远程中央仓库有的第三方jar包,这个时候就需要从远程中央仓库下载,每个开发者都去远程中央仓库下速度比较慢(中央仓库服务器在国外)

(5)私服就再准备一个仓库,用来专门存储从远程中央仓库下载的第三方jar包,第一次访问没有就会去远程中央仓库下载,下次再访问就直接走私服下载

(6)前面在介绍版本管理的时候提到过有SNAPSHOTRELEASE,如果把这两类的都放到同一个仓库,比较混乱,所以私服就把这两个种jar包放入不同的仓库

(7)上面我们已经介绍了有三种仓库,一种是存放SNAPSHOT的,一种是存放RELEASE还有一种是存放从远程仓库下载的第三方jar包,那么我们在获取资源的时候要从哪个仓库种获取呢?

(8)为了方便获取,我们将所有的仓库编成一个组,我们只需要访问仓库组去获取资源。

所有私服仓库总共分为三大类:

宿主仓库hosted

  • 保存无法从中央仓库获取的资源

    • 自主研发
    • 第三方非开源项目,比如Oracle,因为是付费产品,所以中央仓库没有

代理仓库proxy

  • 代理远程仓库,通过nexus访问其他公共仓库,例如中央仓库

仓库组group

  • 将若干个仓库组成一个群组,简化配置
  • 仓库组不能保存资源,属于设计型仓库

4 本地仓库访问私服配置

  • 我们通过IDEA将开发的模块上传到私服,中间是要经过本地Maven的
  • 本地Maven需要知道私服的访问地址以及私服访问的用户名和密码
  • 私服中的仓库很多,Maven最终要把资源上传到哪个仓库?
  • Maven下载的时候,又需要携带用户名和密码到私服上找对应的仓库组进行下载,然后再给IDEA

上面所说的这些内容,我们需要在本地Maven的配置文件settings.xml中进行配置。

步骤1:私服上配置仓库

说明:

第5,6步骤是创建itheima-snapshot仓库

第7,8步骤是创建itheima-release仓库

步骤2:配置本地Maven对私服的访问权限

<servers><server><id>itheima-snapshot</id><username>admin</username><password>admin</password></server><server><id>itheima-release</id><username>admin</username><password>admin</password></server>
</servers>

步骤3:配置私服的访问路径

<mirrors><mirror><!--配置仓库组的ID--><id>maven-public</id><!--*代表所有内容都从私服获取--><mirrorOf>*</mirrorOf><!--私服仓库组maven-public的访问路径--><url>http://localhost:8081/repository/maven-public/</url></mirror>
</mirrors>

为了避免阿里云Maven私服地址的影响,建议先将之前配置的阿里云Maven私服镜像地址注释掉,等练习完后,再将其恢复。

至此本地仓库就能与私服进行交互了。

5 私服资源上传与下载

本地仓库与私服已经建立了连接,接下来我们就需要往私服上上传资源和下载资源,具体的实现步骤为:

步骤1:配置工程上传私服的具体位置

 <!--配置当前工程保存在私服中的具体位置-->
<distributionManagement><repository><!--和maven/settings.xml中server中的id一致,表示使用该id对应的用户名和密码--><id>itheima-release</id><!--release版本上传仓库的具体地址--><url>http://localhost:8081/repository/itheima-release/</url></repository><snapshotRepository><!--和maven/settings.xml中server中的id一致,表示使用该id对应的用户名和密码--><id>itheima-snapshot</id><!--snapshot版本上传仓库的具体地址--><url>http://localhost:8081/repository/itheima-snapshot/</url></snapshotRepository>
</distributionManagement>

步骤2:发布资源到私服

或者执行Maven命令

mvn deploy

注意:

要发布的项目都需要配置distributionManagement标签,要么在自己的pom.xml中配置,要么在其父项目中配置,然后子项目中继承父项目即可。

发布成功,在私服中就能看到:

现在发布是在itheima-snapshot仓库中,如果想发布到itheima-release仓库中就需要将项目pom.xml中的version修改成RELEASE即可。

如果想删除已经上传的资源,可以在界面上进行删除操作:

如果私服中没有对应的jar,会去中央仓库下载,速度很慢。可以配置让私服去阿里云中下载依赖。

至此私服的搭建就已经完成,相对来说有点麻烦,但是步骤都比较固定,后期大家如果需要的话,就可以参考上面的步骤一步步完成搭建即可。

Nexus私服搭建与使用相关推荐

  1. 02-Maven高级-分模块开发、依赖传递、聚合、继承(SpringBoot的部分底层原理)、多模块开发(环境切换)、Nexus私服搭建与使用

    文章目录 学习目标 一.分模块开发与设计 1. 分模块开发的意义 问题导入 模块拆分原则 2. 分模块开发(模块拆分) 问题导入 2.1 创建Maven模块 2.2 书写模块代码 2.3 通过mave ...

  2. 【nexus 私服搭建】

    1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的负载 ...

  3. nexus私服搭建及maven生命周期

    一.maven找库流程 从流程上看创建nexus私服,能够优化流程,而且更加快速 二.nexus下载.安装 1.nexus下载地址 https://sonatype-download.global.s ...

  4. Nexus 私服搭建及配置

    Nexus 学习 1. 安装及启动 下载地址 启动 ./nexus start 配置文件 nexus 有两个目录 nexus-3.21.1-01 安装 sonatype-work 数据文件 具体每个目 ...

  5. 史上最全的nexus私服搭建全流程

    序言 maven私服类似.net中的nuget包服务器 官网/版本收费 首先要吐槽官网慢的一比,下载不下来. 地址:https://www.sonatype.com/ 下载地址:https://www ...

  6. Maven+Nexus私服搭建

    一.下载 直接通过官方下载最新的开源版,里面也有详细的安装教程. 官方下载地址:http://www.sonatype.org/nexus/go 二.安装 安装过程很简单,只需要把文件拷贝到某路径下即 ...

  7. Maven搭建Nexus私服

    私服的介绍 1 什么是私服 私服是一种特殊的远程仓库,它是架设在局域网的仓库服务,私服代理广域网上的远程仓库,供局域网使用. 在企业开发中,私服的建设是有必要的,其好处如下: 1.1 节省资金.外网带 ...

  8. 【Centos7内网环境Nexus3私服搭建】

    1.使用背景 在项目开发的过程中,我们通常在内部网络进行开发,在内网环境开发中我们经常遇到 Maven包.Npm包.Yum镜像.Docker镜像等无法联网下载问题,当然这些问题也可以通过离线安装的方式 ...

  9. Maven Nexus3 私服搭建、配置、项目发布(docker方式)

    maven nexus私服搭建 访问nexus3官方镜像库,选择需要的版本下载:Docker Nexus docker pull sonatype/nexus3:3.49.0 创建数据目录并赋权 su ...

最新文章

  1. 地表最强VLP模型!谷歌大脑和CMU提出极简弱监督模型
  2. 从产品经理向人工智能产品经理进阶 | 机器学习必备知识
  3. javascript 中this 的用法:
  4. BZOJ 3329 Xorequ (数位DP、矩阵乘法)
  5. linux nginx 图片服务器,搭建Nginx图片服务器(Linux)
  6. html页面跨域提交数据,前端跨域的整理
  7. 微信公众平台消息接口开发(6)电话号码链接与网址链接
  8. LeetCode刷题(47)--Gray Code
  9. python做excel自动化-Python控制Excel实现自动化办公
  10. c语言二级考试程序设计题难吗,计算机二级c语言难吗 考试题型是什么
  11. 计算机及软件工程专业基础综合,2017年东华大学854计算机及软件工程专业基础综合硕士研究生入学考试大纲...
  12. Android分享wifi给电脑,安卓手机怎么通过USB共享网络给mac电脑
  13. python学习之自动化运维(一):shell的使用
  14. 生产实习(制作温度计)
  15. 用AI写代码 -- Github Copilot测试
  16. 设计一个基于用户的API限流策略 Rate Limit
  17. 卖身风波中的考拉员工
  18. 用户手册 操作手册 区别
  19. Ubuntu系统连接Android真机测试
  20. linux hdmi分辨率设置方法,HDMI接口进行设置来优化显示效果详解

热门文章

  1. 【统计DataFrame中每列非空值的个数】
  2. OSI七层模型以及TCP/UDP客户端/服务端程序实例
  3. 新店做3an推客如何设置计划
  4. linux系统usb hub速度测试
  5. imadjust函数分析一
  6. 【调剂】211北京邮电大学2020年计算机学院硕士研究生招生缺额信息
  7. 振华风光半导体通过注册:年营收5亿 中国电子是实控人
  8. Java多级菜单树转为面包屑
  9. Golang学习日志 ━━ (批量)循环生成随机数出现重复的解决办法
  10. 关于: javascriptvoid(0)