plugin、dependency、dependencyManagemen、pluginManagement

plugin和dependency区别

plugin中引入依赖包

作用:插件,作为开发/编译/打包时的一种辅助工具
打包:一般不会打包进项目中

dependency引入依赖包

作用:代码编译/运行时所需要的东西
打包:项目打包后这些东西基本都在(一般都在)

dependencies、dependencyManagement和plugins、pluginManagement

dependencies、dependencyManagement

dependencies子POM会完全继承父POM中声明的dependencies,如果子POM中没有声明某个依赖项,但是父POM中声明了该依赖项,就会直接从父POM中继承该依赖项,如果子POM也声明另外相同依赖包,那么子POM会覆盖父POM中依赖声明

dependencyManagement只是声明依赖,并不实现引入,除非子POM显示声明需要用该依赖项如果不在子POM中声明依赖,是不会从父POM中继承依赖的;只有在子POM中声明了该依赖项,并且没有指定具体版本,才会从父POM中继承该项,并且version和scope都读取自父POM另外如果子POM中指定了版本号,那么会使用子POM中指定的jar版本

dependencyManagement其实只是一个管理jar的作用,是管理jar的版本
其他的什么作用都没有,只是定义找到该jar的三维坐标,并不是真正的去执行下载的jar的功能

plugins和pluginManagement的区别

plugins:就是直接引入一个plugin,而且可以绑定到Maven相关的生命周期上

pluginManagement:是表示插件声明,即你在项目中的pluginManagement下声明了插件,Maven不会加载该插件,pluginManagement声明可以被继承。一般是用来在父POM中定义,提供给子POM使用,子POM也可以覆盖这个定义,而且你在父POM中定义了版本之后,子模块中直接应用groupId和artifactId,而不用指定版本,同时也方便统一管理;而在父POM中的pluginManagement并不会介入到Maven的生命周期。

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