第3章 Maven常用命令

3.1 基础命令

3.1.1 compile

compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。

cmd进入命令状态,执行mvn compile,如下图提示成功:

查看 target 目录,class 文件已生成,编译完成。

3.1.2 test

test 是 maven 工程的测试命令 mvn test,会执行 src/test/java 下的单元测试类。

cmd 执行mvn test执行 src/test/java下单元测试类,下图为测试结果,运行 1 个测试用例,全部成功。

3.1.3 clean

clean是maven工程的清理命令,执行 clean会删除target目录及内容。

3.1.4 package

package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包。

3.1.5 install

install是maven工程的安装命令,执行install将maven打成jar包或war包发布到本地仓库。

从运行结果中,可以看出:

当后面的命令执行时,前面的操作过程也都会自动。

3.2 Maven指令的生命周期

maven对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,这三套生命周期分别是:

Clean Lifecycle 在进行真正的构建之前进行一些清理工作。

Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。

Site Lifecycle 生成项目报告,站点,发布站点。

3.3 maven的概念模型

Maven包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

  • 项目对象模型 (Project Object Model)

    一个maven工程都有一个pom.xml文件,通过pom.xml文件定义项目的坐标、项目依赖、项目信息、插件目标等。

  • 依赖管理系统(Dependency Management System)

    通过maven的依赖管理对项目所依赖的jar 包进行统一管理。

    比如:项目依赖junit4.9,通过在pom.xml中定义junit4.9的依赖,即使用junit4.9,如下所示是junit4.9的依赖定义:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!-- 依赖关系 -->
    <dependencies>
    <!-- 此项目运行使用junit,所以此项目依赖junit -->
    <dependency>
    <!-- junit的项目名称 -->
    <groupId>junit</groupId>
    <!-- junit的模块名称 -->
    <artifactId>junit</artifactId>
    <!-- junit版本 -->
    <version>4.9</version>
    <!-- 依赖范围:单元测试时使用junit -->
    <scope>test</scope>
    </dependency>
    </dependencies>
  • 一个项目生命周期(Project Lifecycle)

    使用maven完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven将这些过程规范为一个生命周期,如下所示是生命周期的各各阶段:

    maven通过执行一些简单命令即可实现上边生命周期的各各过程,比如执行mvn compile执行编译、执行mvn clean执行清理。

  • 一组标准集合

    maven将整个项目管理过程定义一组标准,比如:通过maven构建工程有标准的目录结构,有标准的生命周期阶段、依赖管理有标准的坐标定义等。

  • 插件(plugin)目标(goal)

    maven 管理项目生命周期过程都是基于插件完成的。