SpringBoot中的maven

打开SpringBoot项目的pom.xml文件     会看到有一个parent标签   不知道是用来做什么的

我们打开idea来新建一个maven项目   file-->new-->project   选择maven    

next  然后填写坐标GroupId和ArtifactId

next     取名就叫parent

点击完成,然后等待依赖下载完成

然后把项目中的src目录和pom.xml中无关依赖全部删掉  (只研究pom.xml)   现在项目就变成了这个样子

再将<packaing>标签打包类型改为pom

 

然后在该项目中新建一个module     file-->new-->module     同样选择一个quickstart

把默认的父项目依赖去掉

选择none 

此时的项目应该是下图的样子,填写项目坐标  next  

    

把路径放到跟parent同一个路径下   点击finish

同样的删掉src,pom中无关的配置

然后点击 view-->toolwindow-->mavenproject   看到右边的maven窗口

此时的项目没有任何依赖 

我们在父项目中添加一个log4j的依赖     

点击   刷新maven项目按钮

就会看到父项目中出现一个log4j的依赖  而子项目中是没有任何依赖的

然后在子项目中添加一个parent标签   填写parent项目中的坐标

刷新maven项目,就会发现子项目中也有了log4j的依赖   这样在多项目的jar包管理中,只要所有pom都去继承一个公共的pom文件就可以方便的管理项目所使用框架的版本

 

接着SpringBoot中的pom.xml还出现了另外一种就是没有版本号的依赖

我们都知道在maven项目中需要依赖jar都必须标明所使用jar的版本号

但是这里没标明也没有报错

带着这个问题,接着上面的项目来说 

如果我还有一个项目  demo2,跟demo是一样的项目   我们按照刚才创建demo的方式重新创建一个demo2

使demo2同样继承parent  刷新maven项目   此时所有项目都有了log4j的依赖

然后我在父项目中再添加一个commons-lang依赖   刷新之后会看到所有项目都有了

这就导致了一个问题,既然要统一管理,那么即使demo2不需要commons-lang包 也必须要包含commons-lang包

而使用<dependencyManagement>标签就可以解决这个问题

我们将 commons-lang放入  <dependencyManagement>  标签  然后刷新项目依赖发现所有项目都没有了commons-lang

但是demo项目需要这个依赖    ,    那么就只需要在demo项目中也添加这个依赖,而不再需要版本号。因为版本已经在父项目中统一管理

这就是SpringBoot中pom.xml的parent标签和不写版本号的标签;

这时回到我们SpringBoot项目中    右键点击maven-->show Effective pom  查看parent中所有的依赖

在这里搜索没有版本号的jar,都会看到有版本号,而且是被定义在<dependencyManagement>标签中

jar包版本都是springBoot帮我们设置好的,可以在maven  -->  show Effective Pom中看到

但是有些时候我们不想用它那个版本的jar包,可以直接在我们自己的pom文件中设置相同的properties来覆盖

<activemq.version>5.14.6</activemq.version>
<antlr2.version>2.7.1</antlr2.version>   就会替换掉父pom中的版本

   

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值