Maven-01-基础概念

Maven

Maven 是一个 项目管理和整合工具;

Maven 为开发者提供了一套完整的构建生命周期框架

Maven 使用了一个标准的目录结构和一个默认的构建生命周期


在有多个开发团队环境的情况下,Maven 能够在很短的时间内使得每项工作都按照标准进行。
因为大部分的工程配置操作都非常简单并且可以复用,在创建 *报告* 、*检查*、*构建*和*测试*自动配置时,Maven 可以让开发者的工作变得更简单。

Maven 可以完成的工作:
* 构建
* 文档生成
* 报告
* 依赖
* SCMs
* 发布
* 分发
* 邮件列表

Maven 的目标

Maven 的主要目的是为开发者提供:

  1. 一个可复用、可维护、更易理解的工程综合模型
  2. 与这个模型交互的插件或者工具

Maven 工程结构 和 内容被定义在一个 xml 文件中 - pom.xml,是 Project Object Model (POM) 的简称,此文件是整个 Maven 系统的基础组件。

约定优于配置

Maven 使用约定而不是配置,意味着开发者不需要再自己创建过程。

Maven 为工程提供了合理的默认行为。

当创建 Maven 工程时, Maven 会创建默认的工程结构。

下面的表格展示了工程源码文件、资源文件的默认配置,和其他一些配置。假定 ${basedir}表示工程目录:

配置项 默认值
source code ${basedir}/src/main/java
resources ${basedir}/src/main/resources
Tests ${basedir}/src/test
Complied byte code ${basedir}/target
distributable JAR ${basedir}/target/classes

为了构建工程,Maven 为开发者提供了现象来配置 生命周期目标 和 工程依赖 (依赖于 Maven 的插件扩展功能 和 默认的约定)。

大部分的工程管理 和 构建相关的任务是由 Maven 插件完成的。

POM

POM 代表工程对象模型。

POM 包含了 工程 和 各种配置细节的信息, Maven 使用这些信息构建工程。

POM 也包含了 目标插件。 当执行一个任务或者目标时,Maven 会查找当前目录下的 POM , 从其中读取所需要的配置信息, 然后执行目标。

能够在 POM 中设置的一些配置如下:

* project dependencies
* plugins
* goals
* build profiles
* project version
* developers
* mailing list

在创建 POM 之前, 我们首先确定 工程组(groupId),及其 名称(artifactId)和版本,在仓库中这些属性 是 工程的唯一标识。



    4.0.0

    com.companyname.project-group
    project
    1.0

需要说明的是每个工程应该只有一个POM文件

  • 所有的 POM 文件需要 project 元素 和 三个必须的字段 : groupIdaritfactIdversion
  • 在仓库中的工程标识为 groupId:artifactId:version
  • POM.xml 的根元素是 project,它有三个主要的子节点:
节点 描述
groupId 这是工程组的标识。
它在一个组织或者项目中是唯一的。
例如,一个银行组织 com.company.bank 拥有所有的和银行相关的项目。
artifactId 这是工程的标识。
它通常是工程的名称。
例如,消费者银行。
    groupIdartifactId一起定义了 artifact 在仓库中的位置
version 这是工程的版本号。
artifact 的仓库中,它用来区分不同的版本。
例如 :"com.company.ban:consumer-banking:1.0" "com.company.ban:consumer-banking:1.1 "

你可能感兴趣的:(Maven-01-基础概念)