当前位置: 首页 > article >正文

【Maven】Maven的快照库和发行库

1、分类

Maven 支持两种类型的仓库:快照库(Snapshot Repository)和发行库(Release Repository),用于存储不同性质的构件(Artifacts)。

(1) 快照库 (Snapshot Repository):

  • 用途:快照库主要用于存储开发过程中的不稳定版本,这些版本是开发者在开发过程中频繁更新的版本。
  • 特点:
    • 版本号以 -SNAPSHOT 结尾,例如 1.0-SNAPSHOT。
    • 每当源代码发生变化并构建时,即使版本号没有改变,Maven 也会尝试从远程快照库下载最新的快照版本。
    • 适合于处于积极开发阶段的项目,允许团队成员共享最新的工作进展而不必每次更改版本号。

(2) 发行库 (Release Repository):

  • 用途:发行库用于存储稳定的发布版本。这些版本已经过测试,并且可以被其他项目作为依赖项安全地引用。
  • 特点:
    • 版本号不包含 -SNAPSHOT,例如 1.0。
    • 一旦发布到发行库中,构件的内容不应该再改变。如果需要修正错误或添加功能,则应发布新版本。
    • 适合于发布的稳定版本,确保用户获得的是经过验证的代码。

2、实战—配置工作

将 jar 包或 war 包安装到本地仓库不需要指定快照库或发行库,因为本地仓库就一个,不区分快照或发行。如果谈到了快照库或发行库,那就是需要将打包好的 jar 包或 war 包等部署到远程仓库或私服。这时候就需要做一些配置了。

(1) 在pom文件中配置仓库

要在 Maven 项目中配置快照库和发行库,需要编辑项目的 pom.xml 文件,在 <distributionManagement> 元素内定义仓库的信息:

<distributionManagement>
    <repository> <!-- 发行库 -->
        <id>releases</id>
        <name>User Project Release</name>
        <url>http://example.com/maven/releases</url>
    </repository>
    
    <snapshotRepository> <!-- 快照库 -->
        <id>snapshots</id>
        <name>User Project Snapshots</name>
        <url>http://example.com/maven/snapshots</url>
    </snapshotRepository>
</distributionManagement>

说明:

  • id 标签是快照库或发行库的唯一标识。在私服或远程仓库中创建快照库或发行库时指定需要指定一个 id,然后在本地 settings.xml 文件中指定(后面会讲到)。
  • url 是私服或远程仓库的地址。

2、在本地配置文件配置远程仓库的信息

如果想要将构件部署到私有仓库(如 Nexus),还需要在 ~/.m2/settings.xml 文件中配置服务器认证信息:

<servers>
    <server>
        <id>releases</id> <!-- 发行库 -->
        <username>yourUsername</username>
        <password>yourPassword</password>
    </server>
    
    <server>
        <id>snapshots</id> <!-- 快照库 -->
        <username>yourUsername</username>
        <password>yourPassword</password>
    </server>
</servers>

说明:

  • id 标签必须和私服或远程仓库中指定的 id 相同。
  • username 和 password 是登陆访问私服或远程仓库的凭证。

私服搭建和部署可以参考:https://blog.csdn.net/m0_46308522/article/details/144118804?spm=1001.2014.3001.5502

确保 pom.xml 中声明的仓库 id 与配置文件的 元素匹配。这样,当执行 mvn deploy 命令时,Maven 将根据项目的版本号自动选择正确的仓库进行部署。


http://www.kler.cn/a/449591.html

相关文章:

  • Linux的mmap
  • 重温设计模式--单例模式
  • 【蓝桥杯——物联网设计与开发】基础模块8 - RTC
  • kubeadm搭建k8s集群
  • uniapp跨平台开发---webview调用app方法
  • 第十四章 C++ 数字
  • Chrome 关闭自动添加https
  • 记录vue+elementUI table的组件
  • Android 系统源码 Bootable Recovery 目录下 Updater 技术架构详解
  • java 实现排序的几种方式
  • React Refs 完整使用指南
  • ansible的流程控制
  • 重温设计模式--观察者模式
  • postman读取文件执行
  • 模型并行分布式训练 Megatron (3) ---模型并行实现
  • 数仓开发那些事(8)
  • starter-data-mongodb
  • PostCSS插件——postcss-pxtorem结合动态调整rem实现字体自适应
  • 开源低代码平台-Microi吾码 打印引擎使用
  • JavaScript从基础到进阶的155个问题
  • VSCode 配置远程连接免密登录 插件
  • 使用 C# 从 Web 下载文件
  • 数据分析实战—IMDB电影数据分析
  • 单元测试mock框架Mockito
  • 如果安装FreeSWICH?
  • 梳理你的思路(从OOP到架构设计)_设计模式Composite模式