SpringBoot中的maven

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

SpringBoot中的maven_第1张图片

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

SpringBoot中的maven_第2张图片

next  然后填写坐标GroupId和ArtifactId

SpringBoot中的maven_第3张图片

next     取名就叫parent

SpringBoot中的maven_第4张图片

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

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

SpringBoot中的maven_第5张图片

再将标签打包类型改为pom

 

然后在该项目中新建一个module     file-->new-->module     同样选择一个quickstartSpringBoot中的maven_第6张图片

把默认的父项目依赖去掉

SpringBoot中的maven_第7张图片

选择none 

SpringBoot中的maven_第8张图片

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

SpringBoot中的maven_第9张图片    

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

SpringBoot中的maven_第10张图片

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

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

SpringBoot中的maven_第11张图片

此时的项目没有任何依赖 

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

SpringBoot中的maven_第12张图片

点击   刷新maven项目按钮

SpringBoot中的maven_第13张图片

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

SpringBoot中的maven_第14张图片

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

SpringBoot中的maven_第15张图片

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

SpringBoot中的maven_第16张图片

 

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

SpringBoot中的maven_第17张图片

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

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

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

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

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

SpringBoot中的maven_第18张图片

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

SpringBoot中的maven_第19张图片

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

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

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

SpringBoot中的maven_第20张图片

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

SpringBoot中的maven_第21张图片

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

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

SpringBoot中的maven_第22张图片

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

SpringBoot中的maven_第23张图片

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

SpringBoot中的maven_第24张图片

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

5.14.6
2.7.1   就会替换掉父pom中的版本

   

你可能感兴趣的:(笔记)