美文网首页
Maven-01-基础概念

Maven-01-基础概念

作者: 总瓢把子 | 来源:发表于2019-07-30 10:31 被阅读0次

    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)和版本,在仓库中这些属性 是 工程的唯一标识。

    <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.companyname.project-group</groupId>
        <artifactId>project</artifactId>
        <version>1.0</version>
    </project>
    

    需要说明的是每个工程应该只有一个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-基础概念

          本文链接:https://www.haomeiwen.com/subject/pgdgrctx.html