一、Maven编译
1、Maven在编译项目代码时会用到三套classpath:
编译classpath,测试classpath,运行classpath/
2、
Maven 依赖传递性:
2.1)什么是依赖传递性?
maven的pom.xml中配置的A.jar包会自动下载自己所依赖的其他B.jar。
其他依赖于B.jar的C.jar就不需要在下载B.jar了。
2.2)依赖调节原则
1、最短路径原则
2、第一声明者优先
3、Maven排除依赖:
<dependency> <groupId>xxxx</groupId> <artifactId>xxxx</artifactId> <version>xxxxx</version> <exclusions> <exclusion> <groupId>xxxx</groupId> <artifactId>xxxx</artifactId> </exclusion> </exclusions> </dependency>
4、Maven属性归类依赖:
<properties> <springframework.version>3.2.8.RELEASE</springframework.version> </properties>
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${springframework.version}</version> </dependency>
二、maven的基础节点
1、必须填写的基本坐标:
groupId :一个项目一个唯一的值groupIdartifactId:区分项目中不同的模块version :项目的版本
2、非必填
compile:三种范围都有效packaging:默认jar,可选war ,使用mavan的tomcat运行时,因为没写成war导致加载不了scope : 默认选项 compile
test :测试classpath有效
provided:编译和测试classpath有效
runtime: 测试和运行classpath有效
system: 编译和测试classpath有效,但是因为是使用的本地文件,所以Maven仓库无法解析,此构建不可移植。
<systemPath>本地jar路径</systemPath>optional:依赖是否可选