Maven——maven中的 pom和import的作用到底是什么
1、前言
在微服务的项目中,我们是不是经常在父项目中写一些统一版本的jar包,但是其中很多时候都有如下类似代码的影子,对于下面的代码中pom和type的作用是否明白呢,如果不明白,欢迎看下面的内容。
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency>
2、分析pom
maven和java一样,是单继承的,它只能有一个父类,但是我们在创建springboot项目的时候,一般我们都是这样创建的:pom如下:
<!-- 父类,表示是一个springboot项目 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version><relativePath/> </parent><!-- 版本控制 --><properties><mybatis.starter.version>1.3.2</mybatis.starter.version><mapper.starter.version>2.0.2</mapper.starter.version><druid.starter.version>1.1.9</druid.starter.version><mysql.version>5.1.32</mysql.version></properties><dependencyManagement><dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.starter.version}</version></dependency><!-- 通用Mapper启动器 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>${mapper.starter.version}</version></dependency><!-- 分页助手启动器 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pageHelper.starter.version}</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency></dependencies></dependencyManagement>
首先我们看到一个parent标签,里面是springboot,代表这是一个springboot项目,然后我们想用springboot里面封装好的一些jar包,直接就和java继承一样,直接使用,但是问题来了,此时我想让我的项目用springCloud下的包,做成一个微服务的项目,那么现在该怎么做呢?pom和import解决了此问题,代码如下:
<properties><spring-cloud.version>Finchley.SR2</spring-cloud.version><mybatis.starter.version>1.3.2</mybatis.starter.version><mapper.starter.version>2.0.2</mapper.starter.version><druid.starter.version>1.1.9</druid.starter.version><mysql.version>5.1.32</mysql.version></properties><dependencyManagement><dependencies><!-- springCloud --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.starter.version}</version></dependency><!-- 通用Mapper启动器 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>${mapper.starter.version}</version></dependency><!-- 分页助手启动器 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pageHelper.starter.version}</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency></dependencyManagement>
3、结论
此时我就可以直接用springcloud下面包的所有的东西了,说了这么多pom和import就是解决了maven单继承的问题。
4、参考
Maven 实战(三)——多模块项目的 POM 重构
使用import scope解决maven继承(单)问题
maven中import scope依赖方式解决单继承问题的理解
Maven——maven中的 pom和import的作用到底是什么相关推荐
- IDEA中Maven项目中的pom文件出现小蜘蛛
问题描述 在IDEA的Maven项目中的pom.xml文件右键点击Add as Ant Build File按钮导致pom.xml文件图标出现小蜘蛛,并且pom文件标签全部报红 解决方案: 在右侧An ...
- Maven项目中的pom.xml各种标签的具体作用
maven的核心就是pom.xml,使用maven是为了更好的帮项目管理包依赖.如果要引入一个jar包,需要在pom文件中加上<dependency></dependency> ...
- IDEA Maven项目中,pom.xml文件显示为橘红色普通xml文件,将pom文件变为蓝色图标
一.创建Maven项目后,pom.xml显示为橘红的普通文件,可能是IDEA没有识别 二.如果可以依赖可以正常导入,文件还是显示为橘色,可能是开启了节能模式导致的 这时候取消勾选Power Save ...
- Maven项目中使用JUnit进行单元测试
1.打开maven项目中的pom.xml,添加JUnit 的jar包 2.在src/test/java下右键新建JUnit Test Cast 转载于:https://www.cnblogs.com/ ...
- Maven 中的pom.xml文件
Maven中的Pom.xml文件解析 项目管理利器(Maven)--Pom.xml解析<name>项目的描述名</name> <url>项目的地址</url& ...
- Intellij IDEA中maven更新不下来pom中的jar包,reimport失效
问题: Intellij IDEA中使用maven reimport包,一直失败 即使我将本地已存在的一个jar包目录删除了,pom文件那里也没飘红提示找不到 解决方法: maven设置中去掉离线下载 ...
- ideal pom文件安装到maven库中_java学习之web基础(14)Maven基础学习
maven 介绍 Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM: Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle) ...
- idea中的一个子模块中的pom文件带横线、maven为灰色
1. 删除该子模块后再新建一个同名的子模块,新建的子模块已经被加入了Maven的IgnoreFiles中,需要取消该勾选.此时,子模块中的pom文件带横线, 2. 打开File-->Settin ...
- Maven工程中Pom.xml文件总是报依赖找不到
是不是总是在拉取新项目时遇到下面的问题,依赖找不到 不管是右击项目reload加载还是重启项目都没法把这个依赖给下载下来 有些pom.xml中的依赖可以手动增加版本号就可以识别到了,有的依赖可能是因为 ...
最新文章
- I2C_ADDRS(addr, addrs...)理解
- 线性代数 第四章 向量组的线性相关性
- Make It Connected
- CVPR2016:ResNet 从根本上解决深度网络退化问题
- 基于sklearn的朴素贝叶斯_Sklearn参数详解—贝叶斯
- 51单片机C语言led流水灯及数码管实现秒表
- java框架ssh实验报告_基于SSH的实验报告提交系统
- html5只能django来写if吗,(4)Django学习——模板标签定义及语法:for循环,if判断,页面跳转,开启关闭自动转义,ur...
- python字符串左_Python去除字符串左边指定字符
- 数字信号处理技术在各个领域(电信、音频、图像、雷达、声呐等)的用途
- oracle 客户端怎样配置,oracle 之客户端配置
- 准备给ubuntu18.04安装杀毒软件
- 计算机论文研究思路怎么写,论文的研究思路模板范文 课题研究思路怎么写
- Windows系统封装总结
- 数据中心交换机基础自学系列 | MAC简介
- 对数组进行排序并删除重复项Python
- 怎么判断U盘真实容量,教大家一个准确的简单判断大概多少的方法
- [转载]2007热点技术职位排行及点析
- 小小的纳豆居然有这么多好处,难怪岛国人为它疯狂
- 交换机和路由器的实现原理
热门文章
- 置换群的基本概念与题目
- 物理机(服务器)安装centos7系统,物理机上安装 centos7
- 支付宝公众服务接口和微信公众平台接口的区别
- [源码解析] 深度学习分布式训练框架 horovod (11) --- on spark --- GLOO 方案
- MySQL索引详解之索引的利弊以及高效使用
- python抓取网站访客手机号_三网运营商大数据实时截流网站访客
- 1到10所有数的立方
- 题解 luoguP3513 【[POI2011]KON-Conspiracy】
- html+css模仿的锤子官方首页
- C语言文件操作(1)