Nexus 搭建 Maven 私库

Nexus 搭建 Maven 私库

Linux 安装 Nexus 中央仓库教程

一、注册用户

账号:admin

密码:nexus213465

image-20241202101604529

二、查看远程私库

  • 进入设置项Repository/repositories 目录

image-20241202101653573

Proxy(代理)仓库

  • 代理仓库主要用于代理远程仓库,如中央Maven仓库或公共 npm 注册表。
  • 当本地构建工具请求某个依赖项时,如果该依赖项不在本地缓存中,Nexus 将从配置的远程仓库获取,并将其存储在本地缓存中以供将来使用。
  • 这种方式可以减少对外部网络的依赖,提高下载速度,并减轻公共仓库的负担。
  • 代理仓库也可以设置为只读,防止直接向其中部署构件。

Group(组)仓库

  • 组仓库是多个仓库的集合视图,它可以包含其他组仓库、代理仓库或托管仓库。
  • 它的作用是简化客户端配置,客户端只需要指向一个 URL 就可以访问到所有需要的组件。
  • 当构建工具请求一个构件时,Nexus 会按照定义的顺序检查组内的每个仓库,直到找到所需的构件。
  • 组仓库本身并不存储任何构件,它只是作为一个聚合点来提供对其他仓库中构件的访问。

Hosted(托管)仓库

  • 托管仓库用于存放内部构建的构件,也就是你自己的项目生成的二进制文件。
  • 开发团队可以将他们的构建成果部署到托管仓库中,以便团队成员或其他系统能够重复利用这些构件。
  • 托管仓库可以被配置成允许写入,所以可以直接向其中部署新的构件版本。
  • 使用托管仓库有助于确保内部构件的安全性和可控性,同时也方便了内部构件的版本管理和分发。

Tip

proxy 代理仓库,主要是代理公共的远程仓库,比如aliyun的。
group 仓库组,主要是将仓库汇总,将自己的仓库,远程的仓库汇总起来,然后对外提供一个地址。将 proxyhosted 统一
hosted 宿主仓库,理解为自己的仓库,主要用于公共的远程仓库没有的,或者自己的包。后续提供方,需要将jar推送到仓库的地址

三、创建 Maven仓库

3.1.创建 proxy 代理仓库
  • 点击 Create repository 创建仓库

image-20241202103115423

  • 选择创建 maven2(proxy) 类型

image-20241202103228170

  • 初始化仓库名称,初始化需要代理的公共仓库地址
# name:
# 输入创建的仓库名称 my-proxy
# remote storage
# 输入公共的仓库地址:(可选)
# https://repo.maven.apache.org/maven2
# https://maven.aliyun.com/nexus/content/groups/public

image-20241202104132768

阿里云仓库:

https://maven.aliyun.com

3.2 创建 hosted 宿主仓库
  • 选择创建 maven2(hosted) 类型

image-20241202105429657

  • 输入仓库名称

输入名称 my-hosted

image-20241202104623306

  • 更改控制是否允许构件的部署和更新为 Allow redeploy

image-20241202105250189

3.3 创建 group 仓库组
  • 选择创建 maven2(group)

image-20241202105459284

  • 输入名称,更改 **version pollcy **为 Mixed

image-20241202105540257

  • 把宿主仓库(my-hosted)和代理仓库(my-proxy) 加入,宿主仓库在上面,优先从宿主仓库找,找不到再到代理仓库

image-20241202105838652

将自定义的仓库添加到 Members 中

image-20241202105900087

完成三种类型的仓库创建

image-20241202105957171

四、使用 Maven 仓库

4.1 上传公共包到私库
4.1.1 修改 IDEA 的 maven 的 setting.xml
  • 找到 IDEA 的配置的maven的setting 文件

image-20241202111003925

  • 新增 <server> 的配置
<!-- nexus 的登录用户 -->
<server>
<id>private-maven</id>
<username>admin</username>
<password>nexus213465</password>
</server>

image-20241202114727942

4.1.2 上传公共工具jar包
  • 创建一个maven项目,编写工具类

image-20230602141312730

  • 修改pom.xml,打包上传正式版本的jar
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.common</groupId>
    <artifactId>public-common</artifactId>
    
    <!--指定版本为正式版 RELEASE-->
    <version>1.0-RELEASE</version>
    
    <!-- 打包类型--> 
    <packaging>jar</packaging>

    <distributionManagement>
        <repository>
            <!--id 需要和maven的setting.xml的server的id保持一致, 才能获取到 nexus 的账号密码-->
            <id>private-maven</id>
            <name>person-public-hello</name>
            <!--私服maven库的地址-->
            <url>http://ip:16000/repository/my-hosted/</url>
        </repository>
    </distributionManagement>
</project>
  • 进入 nexus 的自定义 hosted 仓库详情页,可以查看仓库的地址

image-20241202115448848

  • 使用maven插件 deploy 打包上传

image-20241202133758932

  • 选择 Browse -> 进入 my-hosted 详情

image-20241202133910889

  • 查看上传的公共包

image-20241202134236497

4.2 从私库拉取公共包
  • 修改 IDEA 的 maven 的 setting.xml 文件,新增 mirror镜像配置
<mirror>
  <id>public</id>
  <name>person-public</name>
  <url>http://ip:16000/repository/my-public/</url>
  <mirrorOf>central</mirrorOf>        
</mirror>

image-20241202153652085

  • 查看group 类型的仓库

image-20241202153807346

  • 在group 类型的仓库中,查看上传的自定义包的依赖

group 仓库包含了之前的 hosted 仓库和 proxy 的仓库,并且是对外开放的

image-20241202153834481

  • 在maven 项目中,引入自定义包的依赖

image-20241202154145623

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值