在maven的阶知识主要学习的是maven在eclipse中的使用、依赖相关的问题、继承(父子工程)、统一版本管理、聚合等相关知识
1.maven在eclipse中的使用
由上篇基础知识学习到怎样下载安装maven,先在我们将下载好的配置到ecllipse中
选择Window->Preferences->Maven->Installations->add->①在本地工作空间的选择Workspace,其余选择External②选择解压maven的目录③可以给配置进来maven任意起名字④点击Finish完成配置
配置本地设置
这样完成在eclipse配置自己解压的maven
2.maven的依赖
2.1依赖的范围
依赖的范围可分为三种分别是test、provided、compile(默认值)
compile:
对主程序是否有效:Y
对测试程序是否有效:Y
是否参与打包:Y
test:
对主程序是否有效:N
对测试程序是否有效:Y
是否参与打包:N
egg:junit.jar
provided:
为web工程添加的
对主程序是否有效:Y
对测试程序是否有效:Y
是否参与打包:N ---不参与部署
egg:service-api.jar
开发有 部署运行不用
2.2 依赖的传递性
依赖的传递性----dependency hierarchy依赖的传递性 首层是直接依赖,其余的是传递依赖
可以传递的依赖不必在每个工程重复声明,只在最下面的工程依赖一次就行--------其余工程均可使用
非compile范围的依赖不能传递,test和provided只在本工程有效
2.3依赖排除
排除只在本工程有效,在下面工程排除依赖,上面使用的工程的依赖也会排除
指定groupId和artifactid
2.4依赖的原则
依赖原则:解决模块工程之间的jar包冲突问题
就近原则,如果有两个类型相同jar包,maven会自动选择最近的
类型相同,路径相同 在dependency声明顺序,maven会选择最后声明的那个版本
2.5依赖管理
<dependencyManagement> <dependencies> <dependency> <groupId>junitgroupId> <artifactId>junitartifactId> <version>4.9version> <scope>testscope> dependency> dependencies> dependencyManagement>
3.统一版本管理
在properties中使用自定义的版本号、定义字符集,在dependency时自动替换
<properties> <spring.version>4.1.1.RELEASEspring.version> <project.build.sourceEncoding>UTF-8project.build.sourceEncoding> properties>
<dependency> <groupId>org.springframeworkgroupId> <artifactId>spring-coreartifactId> <version>${spring.version}version> <scope>compilescope> dependency>
4.父子工程
新建父工程,选择Packaging时选择pom即可
新建子工程,和其他工程新建一致,只需要添加引用即可
<parent> <groupId>com.test.mavengroupId> <artifactId>ParentartifactId> <version>0.0.1-SNAPSHOTversion> <relativePath>../Parent/pom.xmlrelativePath> parent>
父子工程注意事项
父工程---将test范围的工程抽取到父工程里
1.父工程的打包方式是pom
2.在子工程声明对父工程的引用 用parent标签和dependences同级
relativepath以子工程的pom.xml路径为基准的父工程pom.xml的路径
3.子工程与父工程坐标重复删除
4.在父工程统一版本依赖
在父工程配统一依赖的管理dependencyManager --dependences -dependency
5.子工程版本依赖删除
配置继承后,执行安装时要先安装父工程
5.聚合
聚合一键安装各个模块工程
配置聚合----指定各个子工程的相对路径
<modules> <module>../maven1module> <module>../maven2module> modules>
使用方式,在聚合工程上右键 install即可
子模块顺序可以乱序,maven自动排序
6.设置jdk
<plugin> <groupId>org.apache.maven.pluginsgroupId> <artifactId>maven-compiler-pluginartifactId> <version>3.1version> <configuration> <source>1.7source> <target>1.7target> configuration>
plugin>