- Maven工程关系:依赖
- Maven工程关系:继承
- Maven工程关系:聚合
- 编译器插件:
- 资源拷贝插件:
- tomcat插件:
有三种关系:依赖,继承,聚合
【3】依赖的好处:
省去了程序员手动添加jar包测操作,省事!!
还可以帮我们解决jar包冲突的问题:
依赖传递性:
案例演示依赖的传递性:
然后将项目MavenDemo再次重新打包为jar并安装到本地仓库(使用maven命令install)。
然后我们再单独创建一个项目MavenDemo2,让项目MavenDemo2依赖项目MavenDemo:
从上面可以证明:项目2依赖项目1,项目一依赖mybatis工程,–>传递性–>项目二可以直接使用mybatis工程。
依赖传递的两个原则:
排除依赖:
4.0.0 org.example MavenDemo21.0-SNAPSHOT org.example MavenDemo1.0-SNAPSHOT org.mybatis mybatis
依赖范围:
统一管理依赖的版本:
properties标签:使用properties标签内使用自定义标签统一声明版本号,例如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于日后统一升级(配置属性)。
(1)使用properties标签内使用自定义标签统一声明版本号:
4.0.0.RELEASE
(2)在需要统一版本的位置,使用${自定义标签名}引用声明的版本号:
${cvzhanshi.spring.versio}
properties其他用途:
其实properties标签配合自定义标签声明数据的配置并不是只能用于声明依赖的版本号。凡是需要统一声明后再弓|用的场合都可以使用:
4.0.0.RELEASE UTF-8
依赖管理器dependencyManagement:用于声明依赖的坐标gav,不实际引入jar:
类似于java中的继承。
在java中如果父类定义了一个属性如String name=“张三”;
则子类继承了这个父类,则子类是不是直接可以使用name=“张三”.
同理,当我们在父工程中定义了一个依赖的版本号,则子工程是不是可以直接使用父工程的版本号。
parent标签:在Maven中,如果多个模块都需要声明相同的配置,例如:groupId、version、有相同的依赖、或者相同的组件配置等,也有类似Java的继承机制,用parent声明要继承的父工程的pom配置(继承)。
relativePath:
父项目的pom.xml文件的相对路径。默认值为…/pom.xml。maven首先从当前构建项目开始查找父项目的pom文件,然后从本地仓库找,然后从远程仓库找。RelativePath允许你选择一个不同的位置。
如果默认…/pom.xml没找到父元素的pom,不配置relativePath指向父项目的pom则会报错。
(1)首先创建一个父工程MavenDemo(File–>New Project),打包方式为pom:
4.0.0 org.example MavenDemo1.0-SNAPSHOT pom 3.5.6 org.mybatis mybatis${mybatis.version} import
(2)创建一个子工程MavenDemo2:(File–>New Project)
Maven工程关系:聚合4.0.0 org.example MavenDemo1.0-SNAPSHOT ../MavenDemo/pom.xml org.example MavenDemo21.0-SNAPSHOT org.mybatis mybatis
聚合其实也包含了继承的关系。
案例:
创建总工程:pom工程
创建子模块:
查看jdk版本:
资源拷贝插件: tomcat插件:执行命令:



