maven(1)

JAVA学习网 2021-02-23 11:17:14

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

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)。

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 包含了一些可以被继承的默认设置。

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

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

5.存储库

Maven Repository/存储库,顾名思义是一个存储JAR文件的仓库,Maven根据项目中pom.xml文件中提供的jar包依赖信息,从存储库中查找并获取需要的jar包。

Maven Repository有3种类型:

  • Local Repository – 本地库
  • Central Repository – 中央库
  • Remote Repository – 远程库

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   存放测试框架或其他工具的配置文件

阅读(1357) 评论(0)