1、构建工具

    对大部分用户来说,maven是一个用来把源代码构建成可发布的构建的工具。

2、项目管理工具

    对构建工程师和项目经理来说,maven是一个项目管理工具。它除了提供构建的功能,还可以生产报     告,生产Web站点,并能推动工作团队成员间的交流。

3、依赖的范围scope:

    a、test:范围指的是测试范围有效,在编译和打包时都不会使用这个依赖。

    b、compile:范围值在编译时有效,在编译和打包时都会将依赖存储进去。

    c、provided:在编译和测试的过程有效,最后生成war包时不会加入,

       如servlet-api,因为tomcat等web容器中已经存在,如果打包进去会冲突。

    d、runtime:在运行时有效,在编译时不依赖。如数据库包mysql.jar

    e、默认的依赖时compile。

4、mvn常用命令:

   mvn compile:编译将.java文件生成.class文件。

   mvn test:运行测试。

   mvn clean:清空目标文件夹中的内容,如jar/war以及.class文件等。

   mvn package:打包。

   mvn install:将包发布到仓库中。

5、mvn包的传递依赖:

    

5、mvn包的传递依赖:

    a、对于依赖传递而言,主要是针对compile作用域传递。

    b、当依赖级别相同的时候,先依赖那个包,就使用那个包。

    c、当依赖级别不同的时候,先依赖层次对端的那个包。

    d、如果发生包冲突时,可以排除exclusions依赖.

6、maven聚合与继承:

  a、maven聚合:

    <modules>

<module>../module1</module>

<module>../module2</module>

<module>../module3</module>

...

    </modules>

  b、maven继承:将pom中相同的内容放到同一个pom中,如版本定义等。

<parent>

<groupId>..</groupId>

<artifactId>..</artifactId>

<version>..</version>

<relativePath>../parent/pom.xml</relativePath>

</parent>

7.maven项目的文件路径结构:

  pom.xml

  src

     main

java

    package

 resources

      test

 java

    package

 resources

   target

classes

*.jar