项目样例:父工程中包含的标签
packingpropertiesdependencyManagement标签与dependencies标签
子工程声明式依赖
首先,无论是哪一种方式,作为父工程必须删除src文件和把packing改成pom
若不删除父工程src文件则子工程不能新建java包文件和java类等。
因为父工程下存在一个直系src的java工程了,子工程就不可以新建为java工程。
父工程作用就是引入项目全部所需要的外部依赖(jar包等),并进行管理
packing父工程的 packaging 标签的文本内容必须设置为 pom。
properties
2.7.0
dependencyManagement标签与dependencies标签
最高级父maven项目需要使用
io.springfox springfox-swagger2 ${swagger.version} io.springfox springfox-swagger-ui ${swagger.version}
若没有使用dependencyManagement标签管理依赖
子工程声明式依赖子模块会无条件继承父工程的所有依赖,导致的问题是,本不需要的继承的依赖也会被继承,这就大大增加了项目模块最终打包的大小,也可能为上线埋下了隐患。
也就是说,父工程管理的是所有项目模块的依赖,而不是某一个项目模块的依赖,所以
某一个项目模块不需要继承父工程中的所有依赖,这就需要子项目模块向父工程声明需要的
依赖即可(声明式依赖)。而此时,父工程实际只需要通过使用dependencyManagement管理依赖的版本号即可。
由于父工程管理依赖的版本号,那么子模块要想继承依赖,只能通过声明式来添加依赖,
实际上,子模块中的依赖是继承父工程依赖的版本号;如果子模块已定义依赖版本号,那么 以子模块定义的版本号为准。
子工程声明式继承添加父级项目依赖
先声明继承的父工程
edu_parent com.qlugcl 0.0.1-SNAPSHOT
再声明子工程需要继承使用父工程的依赖
io.springfox springfox-swagger2



