首页 > 其他分享 >maven常用命令和配置

maven常用命令和配置

时间:2023-03-17 23:22:05浏览次数:55  
标签:1.0 1.1 parent 配置 jar maven pom 版本 常用命令

 

maven

pom中的parent标签:

parent标签类似java中的继承,复用依赖,减少冗余配置

 

使用场景(when):
在多模块(module)的项目中,有很多模块中的pom中存在相同的引用,如果此时声明一个父pom文件,将公用的依赖提取到父pom文件中(即使用<parent>标签),将大大减少其他pom文件中的依赖的配置

 

如何使用(how):
假如有此时有一个项目中有2个module

我们可以这样使用(step):

创建一个新的module,名为parent(当然也可以叫其他名字),存放父pom,父pom中,也可以使用parent标签(一般放 大部分module都使用的组件,如spirng boot)
在其他两个module中使用parent标签,其坐标就是父pom中声明的坐标
————————————————

SpringBoot项目要继承SpringBoot的起步依赖spring-boot-starter-parent
spring-boot-starter-parent已经对spring进行了一些默认的配置
导入spring-boot-starter-parent之后,其他先关依赖就不用填写版本,由此包统一管理

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

maven指定版本号范围写法

 
  1. <dependency>
  2. <groupId>org.projectlombok</groupId>
  3. <artifactId>lombok</artifactId>
  4. <version>1.18.8</version>
  5. </dependency>

上述代码是我们在使用maven依赖某一个jar包时最常见的写法,其中version指定了jar包的版本为1.18.8。但是在一些项目中我们可以看到如下写法:

复制代码
  1. <dependency>
  2. <groupId>org.projectlombok</groupId>
  3. <artifactId>lombok</artifactId>
  4. <version>[1.18.8,1.18.12]</version>
  5. </dependency>

version的位置变成了中括号加逗号的形式,那这样是什么意思呢?意思是在1.18.8-1.18.12的范围内的jar包都可以使用,默认使用最大版本的即1.18.12

完整的版本号范围说明如下:(x为具体使用的版本号)

复制代码
  1. (,1.0] x <= 1.0
  2. [1.0] x = 1.0 跟直接指定1.0没有区别
  3. [1.2,1.3] 1.2 <= x <= 1.3
  4. [1.0,2.0) 1.0 <= x < 2.0
  5. [1.5,) x >= 1.5
  6. (,1.0],[1.2,) x <= 1.0 or x >= 1.2
  7. (,1.1),(1.1,) x < 1.1 or x > 1.1 即排除1.1的版本

那么假如此时存在快照版本和非快照版本呢?默认情况下,同版本的快照版本会小于非快照版本。如:

复制代码
  1. [1.0-SNAPSHOT,1.0] 如果1.0不存在则使用1.0-SNAPSHOT,1.0存在则使用1.0版本
  2. [1.0,1.0-SNAPSHOT] 错误,会提示:Reason: Range defies version ordering

现在流行微服务,微服务之间就经常会有各种jar包互相引用,在开发一个新的需求如1.1的需求时,开发阶段使用的是快照版本。我们的maven依赖版本就可以写成[1.1-SNAPSHOT,1.1]这样因为我们1.1版本的jar还没发布,所以项目会使用1.1-SNAPSHOT。当项目开发完成上线的时候,打包了1.1版本,依赖的项目打包的时候发现1.1版本的jar存在了则会使用1.1版本的jar。免去上线的时候需要修改pom的麻烦。也避免上线的时候因为忘记修改版本号导致线上版本依赖到快照版

 

 

 

标签:1.0,1.1,parent,配置,jar,maven,pom,版本,常用命令
From: https://www.cnblogs.com/youxin/p/17228619.html

相关文章

  • pip常用命令
    使用不同的镜像源,下载包的时候可能会出现版本不匹配。则可以直接使用pipinstall包名进行下载速查版pipfreezepiplistpipinstallopenpyxlpipinstallop......
  • Vue-Cli devServer.proxy 配置代理服务,解决跨域请求报错的问题
    如果你的前端应用和后端API服务器没有运行在同一个主机上,你需要在开发环境下将API请求代理到API服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy ......
  • Springboot中redis的配置和使用
    1、引入依赖Springboot中可以引入整合的redis的starter依赖如:<!--springboot整合redis,包含了spring-data-redis--><dependency><groupId>org.s......
  • mtk flash配置
    在mtk的flashexcel配置表中有些专业名称,在如下的文档中有详细的描写,对配置新的flash都是有帮助的一、对clock的基本认识   第七部分是“clock&powermanagement”,......
  • idea创建Spring项目时选择Maven还是Spring initializr?
    今天在使用idea创建Spring项目时不知道选择Maven还是Springinitializr 接着都实验了一下,其实本质是一样的,使用“springinitializr”创建项目,可以直观的手动勾选依赖,......
  • Docker CLI docker config create 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Doc......
  • Android SDK 环境变量 配置
    (windows10配置测试成功!:)SDK文件夹下tools和platform-tools两个文件夹1、打开环境变量配置窗口。打开方法win7和xp稍有不同;系统属性-高级-环境变量2、打开“环境变量......
  • nmap常用命令
    目标规格nmap192.168.1.1                   扫描一个IPnmap192.168.1.1192.168.2.1       扫描IP段nmap192.168.1.1-254       ......
  • 修改 resolv.conf 文件后,重启后会还原配置的问题。
    问题出现的原因:当Network每次启动的时候,会读取网卡ifcfg-eth0中的配置配置参数 PEERNDS=yes,读取配置参数在以下两种情况任意一种,PEERNDS都会默认为yes1、ifcfg-......
  • Git 常用命令说明
    安装GitWindows安装包下载地址:https://git-scm.com/download/win安装时,基本按默认选项,但:在SelectComponents页,勾选WindowsExplorerintegration->Sim......