美文网首页
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-基础概念

    Maven Maven 是一个 项目管理和整合工具; Maven 为开发者提供了一套完整的构建生命周期框架 Mav...

  • Golang Gist

    概念讲解 基础概念 基础问答 基础问答 编码能力考查x

  • 基础概念

    Ecmascript 是一个脚本语言标准,规定这个语言的语法,内置函数等等 Javascript是Ecmascri...

  • 基础概念

    集合竞价视频 做市做市商 交易时间 第一次集合竞价时间:9:15-9:25; 做市商做市前报价时间:9:25-9:...

  • 基础概念

    一:统计学和机器学习的比较和练习: 二: from:https://ai.baidu.com/paddlepadd...

  • 基础概念

    净流动资产值 格雷厄姆的主要选股规则, 是买入市值低于净流动资产值 2/3 的企业,待股价超过净资产以上某比例后卖...

  • 基础概念

    1.基本概念 Java是纯面向对象语言,“Everything is Object”;所有代码(包括函数、变量等)...

  • 基础概念

    参考教程,廖雪峰 数据类型 Number js不区分整数合浮点数,统一使用Number。NaN:表示Not a N...

  • 基础概念

    关键 标识符 所谓标识符是指变量、函数、属性的名字,或者函数的参数。标识符的书写有几个特征 区分大小写 第一个字符...

  • 基础概念

    编译后的二进制代码才是机器语言,或者叫机器代码。汇编语言亦称为符号语言。编译器将源程序转换成机器能理解的程序。无符...

网友评论

      本文标题:Maven-01-基础概念

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