1.下载maven安装包

2.解压后配置环境变量M2_HOME

3.配置执行环境,配置path路径

4.mvn -v 检测maven的安装版本

5.pom.xml

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  4.0.0

  com.zsj.maven

  maven-ch01

  0.0.1-SNAPSHOT

 

 junit

      junit

      3.8.1

 test

 

6.目录结构

  src/main/java

  src/main/resources

  src/main/test

7.mvn compile 【执行命令的时候会自动下载依赖的插件】

  mvn test

  mvn clean 删除源文件

  mvn package

  mvn install 将项目打包安装

8.一个项目引用另一个项目

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  4.0.0

  com.zsj.maven

  maven-ch02

  0.0.1-SNAPSHOT

 

 com.zsj.maven

 maven-ch01

 0.0.1-SNAPSHOT

   

 

9.本地默认仓库目录:C:\Documents and Settings\Administrator\.m2\repository

10.配置仓库目录[E:\apache-maven-3.0.4\conf]

配置localRepository,并将settings.xml拷贝到自己新建的本地仓库下

Default: ~/.m2/repository

D:/repos/repository

将原来配置目录下的settings.xml的localRepository同步改

拷贝的配置文件在D:/repos目录下

11.配置中央工厂

默认配置是在maven-model-builder-3.0.4.jar中的pom-4.0.0.xml中

   

      central

      Central Repository

      http://repo.maven.apache.org/maven2

      default

     

        false

     

   

 

12.利用maven骨架生成项目

生成方式一:mvn archetype:generate 

生成方式二:mvn archetype:generate -DgroupId=com.zsj.maven -DartifactId=maven-ch03

-Dversion=0.0.1-SNAPSHOT

13.配置Eclipse中的maven

下载安装m2eclipse

windows--preference--maven--installation

windows--preference--maven--user setting

14.maven隐式变量【Maven提供了三个隐式的变量可以用来访问环境变量,POM信息,和Maven Settings】

1.env

env变量,暴露了你操作系统或者shell的环境变量。便 如在Maven POM中一个对${env.PATH}的引用将会被${PATH}环境变量替换,在Windows中为%PATH%.

2.projetc

project变量暴露了POM。可以使用点标记(.)的路径来引用POM元素的值。例如

        4.0.0

        org.sonatype.mavenbook

        project-a

        1.0-SNAPSHOT

        jar

       

        ${project.groupId}-${project.artifactId}

       

       

当你使用mvn help:effective-pom 查看时,你会看到org.sonatype.mavenbook-project-a

${basedir} 项目根目录

${project.build.directory} 构建目录,缺省为target

${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes

${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}

${project.packaging} 打包类型,缺省为jar

${project.xxx} 当前pom文件的任意节点的内容

15.maven Scope

在POM 4中,中还引入了,它主要管理依赖的部署。目前可以使用5个值:

* compile,缺省值,适用于所有阶段,会随着项目一起发布。 

    * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 

    * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 

    * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。不会发生传递依赖 

    * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

16.依赖

16.1 A依赖xx1.jar,B依赖于xx2.jar ,A,B依赖相同的jar

如果C依赖于A,B,那么C依赖的jar将跟随先依赖的模块

16.2 依赖级别相同的时候,选择路径最短的

17.排除依赖包

org.easymock

easymock

3.1

com.xxx

xxx

18.聚合多个项目

在eclipse中创建一个简单的maven项目,跳过固有的结构模式

4.0.0

com.zsj.user

user-aggregation

0.0.1-SNAPSHOT

pom

../user-core

../user-log

../user-service

19.继承

  在引用模块的配置

  4.0.0

 

  xxx

  ddd

  ssss

  ../user-parent/pom.xml

 

  依赖继承,在父模块中配置,此时子模块中就不需要填写依赖包的版本信息

 

  4.0.0

  com.zsj.user

  user-parent

  0.0.1-SNAPSHOT

  pom

 

 

 

  ****

 

 

 

继承和聚合可以合在一起