maven(1)

本篇知识来源于大佬博客以及菜鸟教程

1.简介

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档项目管理工具软件。(它是一个强大的Java项目构建工具,基于POM(项目对象模型)文件,可用于项目构建、依赖模块管理和Javadoc生成等。)

2.构建工具

构建工具是软件构建过程自动化的一种工具。一个软件项目的构建通常包含以下几部分:

  • 生成源代码(如果项目使用了自动生成部分源代码)
  • 从源代码生成文档(如javadoc)
  • 编译源代码
  • 将编译好的代码打包到ZIP包或JAR包中
  • 把打包好的文件部署到服务器或存储库

某些软件项目可能还包含其他特殊构建任务,这些任务都可以添加到maven的构建过程中自动化执行。

构建过程自动化的好处是,避免出错,效率更高,人工执行构建过程比较慢且容易出错。

3.工作原理

3.1 Maven 读取 pom.xml

maven根据pom.xml文件中的配置来执行命令。

3.2 下载依赖jar包到本地库(Repository)

pom.xml文件中包含了依赖项的配置,依赖项是项目使用的第三方库,即外部的jar文件,如果本地库没有,那么Maven将从中央库下载依赖项,并存放在本地库中。

3.3 执行构建过程/阶段/目标

项目的构建通常包含数个相互独立的任务,可以独立执行,如生成文档,构建jar包等。单个任务的执行过程被称为一个构建生命周期,构建生命周期由一系列的构建阶段组成,每个阶段包含一系列的构建目标。

3.4 执行插件

插件是构建目标的集合,也称为MOJO (Maven Old Java Object)。

Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。

Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来:

  • 创建 jar 文件
  • 创建 war 文件
  • 编译代码文件
  • 代码单元测试
  • 创建工程文档
  • 创建工程报告

3.5 构建profile

可以构建项目的不同版本。

4.POM

4.1 概念

POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

  • 项目依赖
  • 插件
  • 执行目标
  • 项目构建 profile
  • 项目版本
  • 项目开发者列表
  • 相关邮件列表信息

4.2 标签

节点 描述
project 工程的根标签
modelVersion 指定模型版本,应为4.0
groupld 这是工程组的标识。它在一个组织或者项目中通常是唯一的。
artifactld 这是工程的标识。它通常是工程的名称。
version 这是工程的版本号。

4.3 pom继承

父(Super)POM是 Maven 默认的 POM。所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 包含了一些可以被继承的默认设置。因此,当 Maven 发现需要下载 POM 中的 依赖时,它会到 Super POM 中配置的默认仓库 http://repo1.maven.org/maven2 去下载。

<parent>        <groupId></groupId>        <artifactId></artifactId>        <version></version>        <relativePath></relativePath>    </parent>

可用上述结构显式地继承另一个POM文件。

5.存储库

  • 在 Maven 的术语中,仓库是一个位置(place)。

    Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。

    在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。

    Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。

    Maven 仓库有三种类型:

    • 本地(local)
    • 中央(central)
    • 远程(remote)

Maven搜索依赖项时,会按照:本地库、中央库和远程库的顺序进行。

本地库可以通过修改settings.xml(apache-maven-3.6.3\conf\)文件来更改maven本地存储库的位置。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">          <localRepository>D:\Java\maven-repository</localRepository>  <!-- localRepository

localRepository 后方是我们想要修改地本地库存储的位置。

6.项目结构

|--name​|--pom.xml   Project Object Model 项目对象模型,Maven 的核心配置文件,与构建过程相关的一切设置都在这个文件中进行配置。​|--src​|--main 存放主程序​|--java存放java源文件​|--resources   存放框架或其他工具的配置文件​|--webapp存放关于网页的数据​|--index.jsp默认访问​|--static​|--default存放前端要用的框架,图片,css,js等文件​|--WEB-INF​|--web.xml配置文件​|--page存放前端页面,每个板块各为一个文件夹​|--test存放测试程序​|--java存放测试java源文件​|--resources   存放测试框架或其他工具的配置文件
(0)

相关推荐