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的作用到底是什么相关推荐

  1. IDEA中Maven项目中的pom文件出现小蜘蛛

    问题描述 在IDEA的Maven项目中的pom.xml文件右键点击Add as Ant Build File按钮导致pom.xml文件图标出现小蜘蛛,并且pom文件标签全部报红 解决方案: 在右侧An ...

  2. Maven项目中的pom.xml各种标签的具体作用

    maven的核心就是pom.xml,使用maven是为了更好的帮项目管理包依赖.如果要引入一个jar包,需要在pom文件中加上<dependency></dependency> ...

  3. IDEA Maven项目中,pom.xml文件显示为橘红色普通xml文件,将pom文件变为蓝色图标

    一.创建Maven项目后,pom.xml显示为橘红的普通文件,可能是IDEA没有识别 二.如果可以依赖可以正常导入,文件还是显示为橘色,可能是开启了节能模式导致的 这时候取消勾选Power Save ...

  4. Maven项目中使用JUnit进行单元测试

    1.打开maven项目中的pom.xml,添加JUnit 的jar包 2.在src/test/java下右键新建JUnit Test Cast 转载于:https://www.cnblogs.com/ ...

  5. Maven 中的pom.xml文件

    Maven中的Pom.xml文件解析 项目管理利器(Maven)--Pom.xml解析<name>项目的描述名</name> <url>项目的地址</url& ...

  6. Intellij IDEA中maven更新不下来pom中的jar包,reimport失效

    问题: Intellij IDEA中使用maven reimport包,一直失败 即使我将本地已存在的一个jar包目录删除了,pom文件那里也没飘红提示找不到 解决方法: maven设置中去掉离线下载 ...

  7. ideal pom文件安装到maven库中_java学习之web基础(14)Maven基础学习

    maven 介绍 Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM: Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle) ...

  8. idea中的一个子模块中的pom文件带横线、maven为灰色

    1. 删除该子模块后再新建一个同名的子模块,新建的子模块已经被加入了Maven的IgnoreFiles中,需要取消该勾选.此时,子模块中的pom文件带横线, 2. 打开File-->Settin ...

  9. Maven工程中Pom.xml文件总是报依赖找不到

    是不是总是在拉取新项目时遇到下面的问题,依赖找不到 不管是右击项目reload加载还是重启项目都没法把这个依赖给下载下来 有些pom.xml中的依赖可以手动增加版本号就可以识别到了,有的依赖可能是因为 ...

最新文章

  1. I2C_ADDRS(addr, addrs...)理解
  2. 线性代数 第四章 向量组的线性相关性
  3. Make It Connected
  4. CVPR2016:ResNet 从根本上解决深度网络退化问题
  5. 基于sklearn的朴素贝叶斯_Sklearn参数详解—贝叶斯
  6. 51单片机C语言led流水灯及数码管实现秒表
  7. java框架ssh实验报告_基于SSH的实验报告提交系统
  8. html5只能django来写if吗,(4)Django学习——模板标签定义及语法:for循环,if判断,页面跳转,开启关闭自动转义,ur...
  9. python字符串左_Python去除字符串左边指定字符
  10. 数字信号处理技术在各个领域(电信、音频、图像、雷达、声呐等)的用途
  11. oracle 客户端怎样配置,oracle 之客户端配置
  12. 准备给ubuntu18.04安装杀毒软件
  13. 计算机论文研究思路怎么写,论文的研究思路模板范文 课题研究思路怎么写
  14. Windows系统封装总结
  15. 数据中心交换机基础自学系列 | MAC简介
  16. 对数组进行排序并删除重复项Python
  17. 怎么判断U盘真实容量,教大家一个准确的简单判断大概多少的方法
  18. [转载]2007热点技术职位排行及点析
  19. 小小的纳豆居然有这么多好处,难怪岛国人为它疯狂
  20. 交换机和路由器的实现原理

热门文章

  1. 置换群的基本概念与题目
  2. 物理机(服务器)安装centos7系统,物理机上安装 centos7
  3. 支付宝公众服务接口和微信公众平台接口的区别
  4. [源码解析] 深度学习分布式训练框架 horovod (11) --- on spark --- GLOO 方案
  5. MySQL索引详解之索引的利弊以及高效使用
  6. python抓取网站访客手机号_三网运营商大数据实时截流网站访客
  7. 1到10所有数的立方
  8. 题解 luoguP3513 【[POI2011]KON-Conspiracy】
  9. html+css模仿的锤子官方首页
  10. C语言文件操作(1)