Maven进阶学习-低级到初级

有关Maven的配置和创建—>Maven初体验-配置和使用

上篇博客写到了Maven的使用和配置以及在eclipse中的创建Maven项目,接下来学习一下Maven的其他知识点.

1.使用Maven来管理jar包.

  • Maven可以更加方便的管理jar包,从而减轻我们导包的重复和内存占用.
  • 打开pom.xml文件进行jar包的管理:
    Maven进阶学习-低级到初级_第1张图片

2.Maven中依赖的传递性.

  • 使用场景:当项目A依赖于B,B又依赖于C,此时A依赖于C
  • 我创建了一个Maven项目名字为Maven001,我还有另外一个Maven项目MavenDay02-01,此时通过pom.xml来实现Maven001依赖于MavenDay02-01,所以使用三大坐标.
    Maven进阶学习-低级到初级_第2张图片
  • 依赖的传递原则:
    1.就近原则
    依赖的传递过程中,存在重复jar包,依赖路径短的优先
    2.先声明者优先
    依赖的传递过程中,路径相同时,先声明者优先
  • 依赖的排除:
    1.场景:
    当A依赖于B,但此时B中的一些jar包和A的存在冲突,此时就需要排除B中相关依赖
    2.注意事项:
    排除依赖时,一定要在依赖的过程中排除,exclusions标签要在dependency标签中使用,排除依赖时,只需要指定组织id和artifact id即可
    Maven进阶学习-低级到初级_第3张图片

3.Maven中统一jar包版本.

  • 场景:我们以后可能会面对多人开发,多个小组开发多个模块,此时就需要统一一些版本,这样方便后期的维护和修改.比如我们使用的spring会有相对于的配套jar包版本,如果当我们spring版本变化,那这个配套jar包对应的也要改变,所以后期很麻烦,所以我们使用标签来自定义属性,这样通过一个变量来替代那些版本号,以后只需要修改那个变量就可以替换所有的版本号.
  • 使用步骤:
    Maven进阶学习-低级到初级_第4张图片

4.Maven中Scope属性.

  • 应用场景:当我们导入单元测试的jar包时会发现其多了一个属性:
    Maven进阶学习-低级到初级_第5张图片
  • 关于Maven中,scope有五个属性
属性名称 作用
compile 缺省值,适用于所有阶段,会随着项目一起发布
provided 类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar
runtime 只在运行时使用,如JDBC驱动,适用运行和测试阶段
test 只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system 类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
  • 重点了解的三个和其运行范围:
范围 complie test provided
主程序
测试程序
参与部署

5.Maven中常见的操作.

名称 作用
compile 编译
install 安装
clean 清理
test 测试
package 打包
  • 使用截图:
    1.有关编译的,右击Maven项目—>Run As—>Maven Build
    Maven进阶学习-低级到初级_第6张图片

6.Maven中的继承.

  • 使用场景:如果我们需要使用单元测试,但当项目多个模块同时开发,我们每个模块的单元测试版本可能都不一样,所以这里需要使用统一的junit版本,但上面说道,scope为测试的无法继承,所以这里需要使用到父工程.
  • 创建父工程:
    Maven进阶学习-低级到初级_第7张图片
  • 在父工程里面引入jar包,然后创建子工程son01继承
    Maven进阶学习-低级到初级_第8张图片
  • 这样son01就可以导入Father中依赖的单元测试的jar包l.

7.Maven中的聚合.

  • 应用场景:如果一个工程下存在多个模块,在安装部署应用时需要对模块逐一进行安装部署,使用聚合方式,可以实现一次性打包.
  • 注意事项:无论是继承之后安装子工程,聚合之后使用父工程打包部署子模块,先安装部署父工程到本地仓库中
  • 具体步骤:
    Maven进阶学习-低级到初级_第9张图片

虚心学习,一起进步

你可能感兴趣的:(Maven,maven)