Maven3

1.Maven认知

Maven 是一个项目管理工具。能够经过一段描述信息很方便的管理项目报告,生成站点,管理JAR文件,等等。
Maven 以“程序构建能力”为特点,还提供高级项目管理工具。Maven 的“缺省构建规则”具备较高的可重用性。java

一个完整的Maven包括:spring

  1. 一个项目对象模型(Project Object Model,POM)
  2. 一个项目生命周期(Project LIfecycle)
  3. 一个依赖管理系统(Dependency Management System )
  4. 逻辑:用来定义在生命周期阶段中“插件目标”(plugin goal)

当使用 Maven 时,用一个明确的 pom 来描述项目,而后 Maven 利用横切逻辑,这些逻辑来自一组共享的(或者自定义)的插件。apache

Maven 的生命周期在运行 mvn install 时被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达指定的生命周期。api

在此期间,Maven 运行了许多默认的插件目标,包括“编译”和建立一个JAR文件,通俗地说,不须要再手动点击编译运行按钮。eclipse

2.Maven 的安装与配置

Maven 下载:http://maven.apache.org/download.cgi maven

  1. 首先要肯定 jdk 已经安装和配置
  2. maven-xxxx-xxx-bin.jar 解压到放到 D 盘
  3. 配置 maven 环境系统变量:M2_HOME       D:\maven\apache-maven-3.3.3
  4. 配置Path: 加上 ;%M2_HOME%\bin

pom.xml 文件

<!-- 
  modelVersion:POM 模型版本 4.0.0 固定
  groupId:通常指某个公司或者某个组织的某个项目 好比 org.springframework
  artifactId:通常指某个具体项目的某个具体模块 好比 spring-context
  Version:项目的版本
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation
="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">   <modelVersion>4.0.0</modelVersion>   <groupId>com.java1234.HelloWorld</groupId> <artifactId>HelloWorld</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies>     <!--Mvn 远程仓库 注入相应依赖-->
   </dependencies>
</project>
  • Maven 常见命令

    • Mvn compile 编译
    • Mvn clean 清空
    • Mvn test 测试
    • Mvn package 打包
    • Mvn install 把项目安装到本地仓库
  • Mvn 远程仓库地址:

  • Maven 本地仓库迁出 C 盘:配置 setting 文件

    <localRepository>D:\maven\repository</localRepository>

3. m2eclipse 插件安装

 打开 Eclipse,点击菜单 Help - > Install New Software 点击 Add 按钮ide

(因为最新版的 Eclipse 代号 Mars,已经直接集成了 Maven,因此无需在安装 m2eclipse 插件)工具

配置:post

  1. 配置本地仓库;
  2. 配置下载 jar 包源码;(下载JAR包的同时下载源码)

Windows -> preference -> moven ->勾选如下两项!测试

4. Maven 核心技术

1.Maven 仓库概念

    • Maven 远程仓库配置文件: $M2_HOME/lib/maven-model-builder-3.3.3.jar
    • 文件:org\apache\maven\model\pom-4.0.0.xml
      <repositories>
          <repository>
              <id>central</id>
              <name>Central Repository</name>
              <url>https://repo.maven.apache.org/maven2</url>
              <layout>default</layout>
              <snapshots>
                  <enabled>false</enabled>
              </snapshots>
           </repository>
      </repositories>

       

2.Maven 的依赖特性:

依赖选择按照:“最短路径原则” 和 “最早声明原则”

3.Maven 聚合和继承特性

5.Maven 依赖范围

classpath 分为3种:

    1. 编译 classpath,
    2. 测试 classpath,
    3. 运行 classpath

Scope 依赖范围选项:

      • Compile:编译依赖范围,默认就是compile。在编译、测试、运行均有效;
      • Test:测试依赖范围。仅在测试有效,如JUnit;
      • Provided:已提供依赖范围。编译、测试有效,运行时无效,如servlet-api;
      • ystem:系统依赖范围。使用system范围的依赖必须经过systemPath指定依赖文件的路径;
      • Import:导入依赖范围。使用dependencyManagement时,能够导入依赖配置。

5. Maven 生命周期与插件

Maven 经过插件的方式来完成一系列过程来实现功能。

Maven 拥有三套独立的生命周期:

 

Clean 生命周期

    • pre-clean:执行一些清理前须要完成的工做
    • clean:清理上一次构建生成的文件
    • post-clean:执行一些清理后须要完成的工做

Default 生命周期

    • 1,validate;
    • 2,initialize;
    • 3,generate-sources;
    • 4,process-sources;
    • 5,generate-resources;
    • 6,process-resources;
    • 7,compile;
    • 8,process-classes;
    • 9,generate-test-sources;
    • 10,process-test-sources;
    • 11,generate-test-resources;
    • 12,test-compile;
    • 13,process-test-classes;
    • 14,test;
    • 15,prepare-package;
    • 16,package;
    • 17,pre-integration-test;
    • 18,integration-test;
    • 19,post-integration-test;
    • 20,integration-test;
    • 21,post-integration-test;
    • 22,verifty;
    • 23,install;
    • 24,deploy;

Site 生命周期

    • pre-site:
    • site:
    • post-site:
    • site-deploy:

书籍推荐:《Maven实战》许晓斌 著

相关文章
相关标签/搜索