1. 坐标:
唯一确定jar 包 g(maven组织名称)a(项目名称)v(版本)
2.依赖管理:
scop: compile ;test; provided ; runtime
compile: 编译,测试,运行 例如: log4j
test : 测试 例如: junit
provided:编译,测试 例如:servert-api(如果打包后会与tomcat起冲突)
runtime : 运行 例如: jdbc驱动
3.依赖传递
a-->b--->c
b是c 的第一直接依赖
a是b 的第二直接依赖
a是c 的间接依赖
compile中依赖可以进行传递
test 不能够进行传递
4.依赖冲突
就近原则(同pom文件(上面会被覆盖),两项目之间(最近传递)
5.可选依赖
b当中进行设置
<optional>true</optional>,如果为true,依赖不会传递下去;如果为false,则会传递下去。
6.排除依赖
c当中进行设置
<exclusions><exclusions> 排除依赖,谁使用,谁进行关闭。
7.maven的生命周期
。。。
8.插件
wps 当中使用小技巧(可以点击文档结构图生成标题)
maven生命周期指定执行顺序,并没有功能实现,具体功能是由插件实现
<plugin><plugin/>
例如:
默认的编译环境jdk1.5 ,指定编译的环境为jdk 1.7,统一编译的环境
使用maven的tomcat 插件,本地不需要安装tomcat,只需要在pom.xml 文件当中配置
9.继承
9.1在maven中的继承,指的是pom文件的继承,jar文件的继承
9.2父类打包的方式必须为pom方式,子类指定的方式为jar方式(两个为一个工程)
9.3父类中进行统一管理版本号: dependencyManagement ,其实没有真正依赖,只是管理依赖的版本。
如果子类进行引用,只需要dependencys 进行依赖即可,并不需要指定版本号
9.4父工程抽取版本号:
<properties>
<junit.version>4.9</junit.version>
</properties>
这样当进行版本变更的时候只需改变jar文件的版本号即可!
<version>${junit.version}</version>
10.聚合
聚合工程打包方式必须是pom,一般聚合工程和父工程合并为一个工程
创建dao,servert,一个maven module,默认为jar工程
controller, 一个maven module,为war工程