maven 详情查考 maven实战 许晓斌

maven是一个构建和管理jar包工具.

管理jar:  

  通过坐标来定义一个jar

示例

<project>
  <!-- model version is always 4.0.0 for Maven 2.x POMs -->
  <modelVersion>4.0.0</modelVersion>
  
  <groupId>com.mycompany.app</groupId>   <!--组织ID  一般和src/main/java和src/test/java  下面的包名称对应-->
  <artifactId>my-app</artifactId>     <!--项目标识符 -->
<version>1.0</version> 版本号
  <packageing>pom</packageing> 打包方式jar war pom pom为聚合文件
 <dependencies>                         依赖集合
<dependency> 每一个依赖
<groupId>junit</groupId> 依赖的坐标
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope> 依赖的范围 (test,compile,provide,runtime,import) 默认compile test(测试有效 junit) provide(编译和测试有效 servletapi) runtime(运行有效 常见 jdbc驱动) import(dependencymanagement标签下使用导入pom文件)
<option>true<option> jar可选 这个标签标识依赖不会传递 如果其它包依赖这个包,必须单独引入
</dependency>
</dependencies>
</project>

maven的依赖选择   假设  A->B->C    A依赖B,B依赖于C  当我们引入A的时候,maven自动引入B和C    当出现依赖冲突的时候.maven首先选择最短的依赖路径,如果还有冲突,maven选择pom文件首先出现的依赖路径

当我们发现依赖冲突的时候可以使用,或者想使用莫一个特定版本的jar 的时候    <exclude>标签排除依赖,而后自己声明所需要版本

当项目依赖引入完毕后,使用mvn dependency list 命令查看maven的完整依赖图.优化自己的pom(也可以使用开发工具自带的)

构建: 通过maven命令  

 maven有三个生命周期 分别是clean default  site  

  clean  清理项目

  default :  常用的有compile test package install deploy 顺序执行.执行后面的会先执行前面的

  site:生成文档

maven的聚合和继承:通过<parent>标签可以继承pom文件,重复引入去除

        通过<modules>标签可以聚合pom文件,几个不同的项目可以同时构建

maven的测试:  maven会自动识别src/test/java 目录下以Test或Test结尾的java类,进行测试.

原文地址:https://www.cnblogs.com/aibobs/p/9629400.html