maven项目pom.xml中parent标签的使用
本文来说下maven项目pom.xml中parent标签的使用
文章目录
- parent标签
- parent标签由来
- 依赖排除
- 本文小结
parent标签
parent标签使用例子
<!--父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。坐标包括groupID,artifactID和version等。-->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version><!--父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。--><relativePath/> <!-- lookup parent from repository -->
</parent>
parent标签由来
使用maven是为了更好的帮项目管理包依赖,maven的核心就是pom.xml。当我们需要引入一个jar包时,在pom文件中加上就可以从仓库中依赖到相应的jar包。
现在有这样一个场景,有两个web项目A、B,一个java项目C,它们都需要用到同一个jar包:common.jar。如果分别在三个项目的pom文件中定义各自对common.jar的依赖,那么当common.jar的版本发生变化时,三个项目的pom文件都要改,项目越多要改的地方就越多,很麻烦。这时候就需要用到parent标签, 我们创建一个parent项目,打包类型为pom(parent项目只能是pom,不包含任何代码),parent项目中不存放任何代码,只是管理多个项目之间公共的依赖。在parent项目的pom文件中定义对common.jar的依赖,ABC三个子项目中只需要定义,parent标签中写上parent项目的pom坐标就可以引用到common.jar了。
上面的问题解决了,我们在切换一个场景,有一个springmvc.jar,只有AB两个web项目需要,C项目是java项目不需要,那么又要怎么去依赖。如果AB中分别定义对springmvc.jar的依赖,当springmvc.jar版本变化时修改起来又会很麻烦。解决办法是在parent项目的pom文件中使用<dependencyManagement></dependencyManagement>将springmvc.jar管理起来,如果有哪个子项目要用,那么子项目在自己的pom文件中使用
<dependency><groupId></groupId><artifactId></artifactId>
</dependency>
标签中写上springmvc.jar的坐标,不需要写版本号,可以依赖到这个jar包了。这样springmvc.jar的版本发生变化时只需要修改parent中的版本就可以了。
dependencyManagement是管理jar包版本的,如果在父项目中的该节点下声明了包的版本,子项目中在Dependencies中引用该包时就不需要声明版本了,这样保证多个子项目能够使用相同的包版本。dependencyManagement不实际下载jar包,只会声明包的版本。如果Dependencies中声明了包的版本,则会覆盖dependencyManagement声明的版本。
依赖排除
后续子项目如果不想使用父项目定义的版本,需要通过exclusion排除。由于maven 2.x的依赖传递规则, 很有可能你的项目类路径中包含了一些不想要的依赖. 比如说, 你的项目依赖的那些工程可能没有正确地声明他们的依赖集合. 为了应对这个特殊的场景, maven2.x提出了依赖排除的概念. 排除是针对POM中的一个特定的依赖设置的, 以一个特定的groupId和artifactId为标识. 如果你声明了排除依赖, 当你构建你的工程时, 该构件就不会被添加到你的工程的类路径中.
如何在子项目中排除父项目中不需要的依赖
本文小结
本文详细介绍了maven项目pom.xml中parent标签的使用。
maven项目pom.xml中parent标签的使用相关推荐
- maven项目pom.xml中添加axis2 的配置
更改pom.xml,增加相关依赖 <properties><axis2.version>1.7.8</axis2.version></properties&g ...
- pom文件找不到子项目_java,eclipse_eclipse中maven项目pom.xml文件找不到parent要怎么解决?,java,eclipse,maven - phpStudy...
eclipse中maven项目pom.xml文件找不到parent要怎么解决? 在maven项目中方pom.xml文件找不到parent,maven clean报错如下: [ERROR] [ERROR ...
- springboot创建parent_创建springboot项目时,pom.xml中parent报错
下载Maven 进入maven官网 http://maven.apache.org/download.cgi. 找到并点击apache-maven-3.6.2-bin.zipi.下载压缩包 配置Mav ...
- maven的pom.xml中repositories的作用
在maven中pom.xml是Maven进行工作的主要配置文件,它的作用包括:配置Maven项目中需要使用的远程仓库,Maven项目的资源依赖关系等.其中pom是Project Object Mode ...
- maven项目pom.xml文件Maven install时报错
欢迎加入JavaWeb开发交流群:群号:1062758224 [WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has be ...
- maven的pom.xml中profiles的作用
1.profiles是什么?有什么作用 在maven构建的项目都存在一个pom.xml的项目对象模型配置文件,用于约束项目(如:jar包管理.构建管理等).profiles是pom.xml中的一个配置 ...
- eclipse手动pom本地包_(转)如何在maven的pom.xml中添加本地jar包
1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示: 1 groupId 2 artifactId 3 version 4 jar包的依赖 如果要将 ...
- (转)如何在maven的pom.xml中添加本地jar包
转载自: https://www.cnblogs.com/lixuwu/p/5855031.html 1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下 ...
- maven 在pom.xml 中指定仓库位置
...... 在pom.xml 中添加 仓库位置(这样遇到私服没有的依赖,就会去这下载) </properties><repositories><!-- 代码库 --&g ...
最新文章
- 东 北 大 学计算机辅助设计,东北大学计算机辅助设计(B)
- css --- 使用scss生成常用的基本css样式
- c语言图片效果,c语言能显示图片吗
- CCNA,CCNP资料
- 用Flash模拟小车
- Recover刷机简介
- 广西科技大学计算机考研,广西科技大学研究生院
- 直接拿来用!一文学会 Docker 镜像!
- k8s部署nacos
- Reflector 3在录制中如何添加自己的声音
- webservice4
- 【应用随机过程】01. 随机过程的基本概念
- 【机房报修管理系统】1.简介篇 机房报修管理系统简介
- 唯物史观在高中历史教学中的具体运用
- word怎样把多个标题设置成一级标题,二级标题的简便方法
- 如何在不同的窗口中打开多个Excel
- 顺序表--学生信息管理
- AWS - 查看操作历史 - CloudTrail
- BigDecimal 往左移动两位小数_小学五年级上册数学小数除法应用题专项练习,拿给孩子做做看...
- 在shell脚本中使用sed命令更改文件中两个相似参数的其中一个
热门文章
- Django编写RESTful API(二):请求和响应
- php 自定义 $_SERVER
- WEB站点服务器安全配置
- Objective C的那点小语法
- 解决/usr/bin/ld: cannot find -lxxx
- corosync+openais+pacemaker构建高可用性集群
- 热备份路由协议(HSRP)
- 新瓶旧酒ASP.NET AJAX(1) - 简单地过一下每个控件(ScriptManager、ScriptManagerProxy
- 生活等级测试(娱乐性质)
- Windows结束某个端口的进程