SpringBoot将依赖打包到Mavne私服

1 篇文章 0 订阅
本文详细介绍了如何配置和使用私有的Maven仓库Nexus,包括设置默认仓库、仓库类型解释、Maven配置修改以及发布依赖的步骤。同时,还提供了使用阿里云Maven仓库的替代方案,确保高效、稳定地下载和发布依赖。
摘要由CSDN通过智能技术生成

准备工作

  1. 一台虚拟机(桥接模式)
  2. 搭建docker(推荐)
  3. 安装nexus

以上可参考之前的文章
https://blog.csdn.net/SpringHASh/article/details/122521117?spm=1001.2014.3001.5501

Maven私服配置

浏览器访问
http://192.168.1.114:8081/
登陆进入

在这里插入图片描述

基础说明

(1)默认仓库说明:
	maven-central:maven 中央库,默认从 https://repo1.maven.org/maven2/ 拉取 jar
	maven-releases:私库发行版 jar,初次安装请将 Deployment policy 设置为 Allow redeploy
	maven-snapshots:私库快照(调试版本)jar
	maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地 maven 基础配置 settings.xml 或项目 pom.xml 中使用
(2)仓库类型说明:
	group:这是一个仓库聚合的概念,用户仓库地址选择 Group 的地址,即可访问 Group 中配置的,用于方便开发人员自己设定的仓库。maven-public 就是一个 Group 类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x 默认为 Releases、Snapshots、Central,当然你也可以自己设置。
	hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的 jar 文件
	snapshots:本地项目的快照仓库
	releases: 本地项目发布的正式版本
	proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的 Configuration 页签下 Remote Storage 属性的值即被代理的远程仓库的路径),如可配置阿里云 maven 仓库
	central:中央仓库

相关配置

这里基于 maven-central 中央库做了修改

在这里插入图片描述

将 默认从 https://repo1.maven.org/maven2/  修改成
阿里云地址 http://maven.aliyun.com/nexus/content/groups/public/

在这里插入图片描述

我们编辑 maven-public,将其添加到放入 group 中,并调整优先级,然后保存

Maven 配置使用私服(下载依赖)

1,基本说明
(1)Maven 配置私服下载有两种方式:
setting.xml:该文件配置的是全局模式
pom.xml:该文件的配置的是项目独享模式
注意:若 pom.xml 和 setting.xml 同时配置了,以 pom.xml 为准。

(2)当我们在 maven 使用 maven-public 仓库地址的时候,会按照如下顺序访问:本地仓库 --> 私服 maven-releases --> 私服 maven-snapshots --> 远程阿里云 maven 仓库 --> 远程中央仓库。

2,通过 setting.xml 文件配置
(1)setting.xml 文件配置样例如下。配置后不需要再配置 pom.xml 文件,即可通过私服下载 jar 依赖包。

<mirrors>
    <mirror>
        <!--该镜像的唯一标识符。id用来区分不同的mirror元素。 -->
        <id>maven-public</id>
        <!--镜像名称 -->
        <name>maven-public</name>
        <!--*指的是访问任何仓库都使用我们的私服-->
        <mirrorOf>*</mirrorOf>
        <!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。 -->
        <url>http://192.168.60.133:8081/repository/maven-public/</url>     
    </mirror>
</mirrors>

(2)如果我们并没有搭建私服,属于个人开发,那么也可以直接配置使用阿里 云maven 仓库:

<mirror>
  <id>nexus-aliyun</id>
  <name>Nexus aliyun</name>
  <mirrorOf>*</mirrorOf>
  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

3,通过 pom.xml 文件配置
(1)pom.xml 文件配置样例如下。如果我们配置了 pom.xml,则以 pom.xml 为准。

<repositories>
    <repository>
        <id>maven-nexus</id>
        <name>maven-nexus</name>
        <url>http://192.168.60.133:8081/repository/maven-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

(2)如果没有私服,我们同样也可以配置阿里云 maven 仓库:

<repositories>
   <repository>
      <id>maven-aliyun</id>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <releases>
         <enabled>true</enabled>
      </releases>
      <snapshots>
         <enabled>true</enabled>
         <updatePolicy>always</updatePolicy>
         <checksumPolicy>fail</checksumPolicy>
      </snapshots>
   </repository>
</repositories>

Maven 配置使用私服(发布依赖)

1)首先修改 setting.xml 文件,指定 releases 和 snapshots server 的用户名和密码:

<servers>
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>123</password>
    </server>
</servers>

(2)接着在项目的 pom.xml 文件中加入 distributionManagement 节点:
注意:repository 里的 id 需要和上一步里的 server id 名称保持一致。

 <!--打包发布依赖-->
    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>Releases</name>
            <url>http://192.168.1.114:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Snapshot</name>
            <url>http://192.168.1.114:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    <!--从私服下载依赖-->
    <repositories>
        <repository>
            <id>maven-nexus</id>
            <name>maven-nexus</name>
            <url>http://192.168.1.114:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

(3)需要使用私服依赖,在pom中加入

   <!--从私服下载依赖-->
  <repositories>
        <repository>
            <id>maven-nexus</id>
            <name>maven-nexus</name>
            <url>http://192.168.1.114:8081/repository/maven-public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

问题解决

报错
was cached in the local repository, resolution will not be reattempted until the update interval of maven-public has elapsed or updates are forced

将本地maven仓库相关的项目依赖删除
参考博客
https://blog.csdn.net/wqc19920906/article/details/119057159

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁漂打工仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值