Java开发学习(三十一)----Maven属性与版本管理

news2025/7/4 19:55:53

一、属性

1.1 问题分析

如下图所示

你会发现,如果现在想更新Spring的版本,你会发现依然需要更新多个jar包的版本,这样的话还是有可能出现漏改导致程序出问题,而且改起来也是比较麻烦。

问题清楚后,我们需要解决的话,就可以参考咱们java基础所学习的变量,声明一个变量,在其他地方使用该变量,当变量的值发生变化后,所有使用变量的地方,就会跟着修改,即:

1.2 解决步骤

步骤1:工程中定义属性

<properties>
    <spring.version>5.2.10.RELEASE</spring.version>
    <junit.version>4.12</junit.version>
    <mybatis-spring.version>1.3.0</mybatis-spring.version>
</properties>

步骤2:修改依赖的version

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${spring.version}</version>
</dependency>

此时,我们只需要更新工程中properties标签中所维护的jar包版本,项目中所有的版本也就跟着更新。当然除了将spring相关版本进行维护,我们可以将其他的jar包版本也进行抽取,这样就可以对项目中所有jar包的版本进行统一维护,如:

<!--定义属性-->
<properties>
    <spring.version>5.2.10.RELEASE</spring.version>
    <junit.version>4.12</junit.version>
    <mybatis-spring.version>1.3.0</mybatis-spring.version>
</properties>

具体使用,就是使用 ${key}来获取,key为等号左边的,值为等号右边的,比如获取红线的值,对应的写法为 ${java.runtime.name}

二、版本区分

关于这个版本管理解决的问题是,在Maven创建项目和引用别人项目的时候,我们都看到过如下内容:

这里面有两个单词,SNAPSHOT和RELEASE,它们所代表的含义是什么呢?

我们打开Maven仓库地址https://mvnrepository.com/

在我们jar包的版本定义中,有两个工程版本用的比较多:

  • SNAPSHOT(快照版本)

    • 项目开发过程中临时输出的版本,称为快照版本

    • 快照版本会随着开发的进展不断更新

  • RELEASE(发布版本)

    • 项目开发到一定阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构件文件是稳定的

    • 即便进行功能的后续开发,也不会改变当前发布版本内容,这种版本称为发布版本

除了上面的工程版本,我们还经常能看到一些发布版本:

  • alpha版:内测版,bug多不稳定内部版本不断添加新功能

  • beta版:公测版,不稳定(比alpha稳定些),bug相对较多不断添加新功能

  • 纯数字版

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/69721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 打 jar包和打war 包配置

文章目录1. 前言2. SpringBoot 打 jar 包3. SpringBoot 打 war 包4.小结1. 前言 目前我们熟知的SpringBoot 打包方式&#xff0c;一共分为两种&#xff0c;一种是打jar 包&#xff08;内置tomcat 方式&#xff0c;yml 里的配置参数生效包括端口&#xff0c;和servlet 的contex…

EndNote参考文献导入

简介 本文介绍如何在Word作文过程中借助EndNote管理参考文献&#xff0c;关于如何将参考文献导入到EndNote中这里不做说明&#xff0c;假定需要的文献均已经导入。 具体步骤 为什么需要文献管理工具来生成参考文献呢&#xff1f;最核心的原因就是自动控制的&#xff0c;文献的…

JAVA SCRIPT设计模式--结构型--设计模式之ADAPTER适配器(6)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能&#xff0c;所以不可能像C&#xff0c;JAVA等面向对象语言一样严谨&#xff0c;大部分程序都附上了JAVA SCRIPT代码&#xff0c;代码只是实现了设计模式的主体功能&#xff0c;不代…

代码详细教程+文档+PPT+源码等]SSM框架网上书城全套含微信支付|电商购物计算机专业毕业论文java毕业设计网站

&#x1f496;&#x1f496;更多项目资源&#xff0c;最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设SSM框架实现的网上书城-升级版_哔哩哔哩_bilibili项目资料网址: http://itzygogogo.com软件下载地址:http://itzygogogo.co…

Spring的IOC是啥?有什么好处?

单一职责原则 依赖倒转原则 最小知识原则 接口隔离原则 合成/聚合复用原则 里氏代换原则&#xff0c;任何基类可以出现的地方&#xff0c;子类一定可以出现 依赖倒置 假设我们设计一辆汽车&#xff1a;先设计轮子&#xff0c;然后根据轮子大小设计底盘&#xff0c;接着根…

封装基板出厂100欧姆,测试85欧姆?

作者&#xff1a;一博科技高速先生成员 陈亮 封装基板&#xff08;Package Substrate&#xff09;是半导体芯片的载体。为芯片提供连接、保护、支撑、散热、组装等功效&#xff0c;以实现多引脚化&#xff0c;缩小产品体积、改善电性能及散热性、多芯片模块化等。我们生活中看…

构造HTTP请求 以及 关于HTTPS的加密

1.构造HTTP请求 构造HTTP请求有很多种方式.使用html,使用jQuery,使用socket…等等. 这里我们介绍两种. 使用html使用jQuery 1.1.使用html构造HTTP请求 使用html构造HTTP请求,要使用到 form 标签. 这里form标签中的属性有两个. action :填写数据要返送到的地址.(URL)meth…

【云原生 | Kubernetes 实战】08、零故障升级之 Pod 健康探测——启动、存活、就绪探测

目录 一、Pod容器健康探测 1.1 为什么要对容器做探测&#xff1f; 默认的健康检查 探测类型 检查机制 探测结果 Pod 探针相关的属性 两种探针区别 1.2 启动探测 startupprobe exec 模式 tcpsocket 模式 httpget 模式 1.3 存活性探测 livenessProbe 通过 exec …

C++const修饰成员函数

#include "iostream"using namespace std;//常函数class Person { public://this指针的本质 是指针常量 指针的指向是不可以修改的//const Person * const this//在成员函数后面加const&#xff0c;修饰的是this的指向&#xff0c;让指针指向的值也不可以修改void …

纤维二糖-聚乙二醇-羟基Cellobiose-PEG-OH羟基-PEG-纤维二糖

纤维二糖-聚乙二醇-羟基Cellobiose-PEG-OH羟基-PEG-纤维二糖 中文名称&#xff1a;纤维二糖-羟基 英文名称&#xff1a;Cellobiose-OH 别称&#xff1a;羟基修饰纤维二糖&#xff0c;羟基-纤维二糖 羟基&#xff08;oxhydryl&#xff09;是一种常见的极性基团&#xff0c;化…

深入场景痛点,制造业数据应用思考与实践

数字化转型是我国制造业进一步创新式发展的关键&#xff0c;决定了企业在未来生存和发展的态势。 但对于企业而言&#xff0c;如何以低耗能、低成本、高效率的方式加快制造业转型升级的步伐&#xff0c;仍然是众多制造企业需要解决的问题。 深入制造企业数字化转型的场景&…

#Spring-boot高级

一、SpringBoot 整合 Mybatis 1、SpringBoot 整合 Mybatis MyBatis 帮助我们快速集成 SpringBoot 提供的一个组件包&#xff08;mybatis-spring-boot-starter)&#xff0c;使用这个组件可以做到以下几点&#xff1a; 自动检测现有的DataSource将创建并注册SqlSessionFactory…

从工地转行网络安全工程师,工资翻了好几倍,我想和大家聊聊我的经历

成功的从工地转行到办公室办公也有一年了&#xff0c;楼主就来说说&#xff0c;从工地到白领的过渡吧&#xff0c;这其中历经艰辛&#xff0c;最终终达成目标。没错&#xff0c;楼主现在成为了一位网络安全工程师… 先说说为什么转行吧&#xff0c;身边很多做土木工程的都转行…

还在一张张打印CAD图纸吗

用CAD打印少些图纸可以一张张的打印&#xff0c;但是需要打印上百甚至上千张图纸的时候一张张打印就不知道需要用多久的打印时间了&#xff0c;那么在CAD梦想画图软件中有一个批量打印图纸的功能&#xff0c;能节约很大一部分打印时间 操作步骤 1.在网上下载CAD梦想画图 2.用…

Ansys Lumerical | 行波马赫曾德尔调制器的仿真设计与优化

说明 本案例将Lumerical和HFSS在行波MZM调制器建模中的功能与optiSLang相结合&#xff0c;提供了强大的优化能力以寻找最佳性能设计。 下载 联系工作人员获取附件 综述 本案例建立在已有的硅波导建模实例&#xff08;Ansys Lumerical 行波 Mach-Zehnder 调制器仿真分析&#x…

知乎zse-96算法-jsrpc方案

文章目录 1.git 下载exe文件2. 控制台执行JsEnv.js,建立连接3.抠取 加密js代码4. python 调用rpc临时有知乎需求,就研究了一下知乎搜索接口,发现主要是zse-96算法难,补环境又有很多坑,又想快速解决问题,就有了用jsrpc来解决的想法,后面有时间了就研究一下再发一个补环境…

JavaScript中的sessionStorage

JavaScript中的sessionStorage 该文章需要联系这篇文章学习&#xff1a;JavaScript中的localStorage 案例池子&#xff1a; JS实现鼠标悬停变色 JavaScript中的排他算法实现按钮单选 JavaScript中的localStorage JavaScript中的sessionStorage JavaScript实现网页关灯效果…

[C++]类和对象【上篇】

​ &#x1f941;作者&#xff1a; 华丞臧 &#x1f4d5;​​​​专栏&#xff1a;【C】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449;LeetCode 文章目录1.面向…

归并排序 (递归+非递归)

文章目录1. 归并排序 递归1.基本思想2. 使用两个函数完成归并3. 递归结束条件4.时间复杂度与空间复杂度计算1. 时间复杂度2. 空间复杂度5. 代码2. 归并排序 非递归1. 思想2. 越界问题1. .end1 beign2 end2 越界方式 1方式 2整体拷贝与拷贝一部分&#xff0c;归并一部分的区别2.…

数据库与身份认证:数据库的基本概念

什么是数据库 数据库&#xff08;database&#xff09;是用来组织、存储和管理数据的仓库。 当今世界是一个充满着数据的互联网世界&#xff0c;充斥着大量的数据。数据的来源有很多&#xff0c;比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据&…