maven命令:
- mvn compile:编译
- mvn test:启动测试,执行test下测试用例
- mvn clean:清空mvn仓库
- mvn package:项目打包到mvn仓库
- mvn install:项目打包到mvn仓库
Eclipse中配置maven:
- preferences—>maven—>installation—>引入自己maven安装路径
- preferences—>maven—>usersettings—>引入本地安装maven的setting配置文件
maven依赖特性:
<dependency></dependency>标签下有一个<scope></scope>标签, scope标签用于指定此依赖的作用范围,共有五个作用范围:compile、provided、runtime、system、test。
- test范围指的是测试范围有效,在编译和打包都不会使用这个依赖,并且不具备传递性。
- compile范围指的是编译范围有效,在编译和打包时都会将依赖存储进去,具有传递性,也是maven的默认作用范围。
- provided在编译和测试的过程有效,最后打包时不会加入。
- runtime在运行时依赖有效。
依赖的传递特性:
1.当属于间接依赖时,优先使用先声明依赖的版本。如:A依赖—>log4j 1.0.0
B依赖—>log4j 2.0.0
C依赖—>A、B
那么C中log4j的版本取决于先依赖谁
2.当依赖级别不相同的时候,使用依赖层次最短的依赖。
如:A—>B—>C
D—>C
E—A、D
那么此时E中C的依赖版本取决于D中C的依赖版本,因为C在D中时一级依赖,而C在A中时二级依赖。
排除某个依赖:
<exclusion><groupId></groupId>
<artifactId></artifactId>
</exclusion>
maven聚合与继承:
聚合:
maven的聚合能够对多个模块进行统一管理,如:
<modules>
<module>ng-redis</module>
<module>ng-util</module>
<module>ng-sms</module>
<module>ng-msgpush</module>
<module>ng-oss</module>
<module>ng-mybatis</module>
</modules>
这里的<modules></modules>标签就是将多个模块聚合到一个项目中。
继承:
maven的继承和Java的继承类似都是单继承。首先在父项目pom中引入所需依赖进行统一版本管理,这里依赖时得使用<dependencyManagement></dependencyManagement>依赖管理标签,这样一来子pom能选择自己所需要的依赖,不会继承父pom所有依赖。