Java 学习路线分享 maven 是什么?

2023-09-21 09:48:31

Maven 是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven 就可以自动完成项目的编译、测试、打包、发布以及部署等工作。

Maven 是使用 Java 语言编写的,因此它和 Java 一样具有跨平台性,这意味着无论是在 Windows ,还是在 Linux 或者 Mac OS 上,都可以使用相同的命令进行操作。

Maven 使用标准的目录结构和默认构建生命周期,因此开发者几乎不用花费多少时间就能够自动完成项目的基础构建工作。

Maven 能够帮助开发者完成以下任务:

  • 构建项目
  • 生成文档
  • 创建报告
  • 维护依赖
  • 软件配置管理
  • 发布
  • 部署

总而言之,Maven 简化并标准化了项目构建过程。它将项目的编译,生成文档,创建报告,发布,部署等任务无缝衔接,构建成一套完整的生命周期。

Maven 的目标

Maven 的主要目标是为为开发人员提供如下内容:

  • 一个可重复使用,可维护且易于理解的项目综合模型
  • 与此模型进行交互的工具和插件

约定优于配置

约定优于配置(Convention Over Configuration)是 Maven 最核心的涉及理念之一 ,Maven对项目的目录结构、测试用例命名方式等内容都做了规定,凡是使用 Maven 管理的项目都必须遵守这些规则。

Maven 项目构建过程中,会自动创建默认项目结构,开发人员仅需要在相应目录结构下放置相应的文件即可。

例如,下表显示了项目源代码文件,资源文件和其他配置在 Maven 项目中的默认位置。

文件目录
Java 源代码src/main/java
资源文件src/main/resources
测试源代码src/test/java
测试资源文件src/test/resources
打包输出文件target
编译输出文件target/classes

Maven 的特点

Maven 具有以下特点:

  1. 设置简单。
  2. 所有项目的用法一致。
  3. 可以管理和自动进行更新依赖。
  4. 庞大且不断增长的资源库。
  5. 可扩展,使用 Java 或脚本语言可以轻松的编写插件。
  6. 几乎无需额外配置,即可立即访问新功能。
  7. 基于模型的构建:Maven 能够将任意数量的项目构建为预定义的输出类型,例如 JAR,WAR。
  8. 项目信息采取集中式的元数据管理:使用与构建过程相同的元数据,Maven 能够生成一个网站(site)和一个包含完整文档的 PDF。
  9. 发布管理和发行发布:Maven 可以与源代码控制系统(例如 Git、SVN)集成并管理项目的发布。
  10. 向后兼容性:您可以轻松地将项目从旧版本的 Maven 移植到更高版本的 Maven 中。
  11. 并行构建:它能够分析项目依赖关系,并行构建工作,使用此功能,可以将性能提高 20%-50%。
  12. 更好的错误和完整性报告:Maven 使用了较为完善的错误报告机制,它提供了指向 Maven Wiki 页面的链接,您将在其中获得有关错误的完整描述。

Maven安装与配置

Maven是一个基于 Java 的项目管理工具,因此最基本的要求是在计算机上安装 JDK。

Maven 对系统要求如下表:

JDKJDK 7.0 及以上。
内存没有最低要求。
磁盘空间Maven 安装本身大约需要 10MB。除此之外,其他磁盘空间将用于本地 Maven 存储库。本地存储库的大小将根据使用情况而有所不同,但至少应为 500MB。
操作系统没有最低要求。

1.Java 环境设置

 Java 官方网站 下载并安装 JDK 7.0 及以上版本。

2.下载 Maven

https://maven.apache.org/download.cgi 下载 Maven,这里我们以 Maven 3.6.3 为例。下载完成后,解压到合适的位置即可,本教程我们解压到 D:\apache-maven-3.6.3。

操作系统下载版本
Windowsapache-maven-3.6.3-bin.zip
Linuxapache-maven-3.6.3-bin.tar.gz
Mac OSapache-maven-3.6.3-bin.tar.gz

3.配置 Maven 环境变量

右键点击“计算机”图标,选择 "属性",然后点击 "高级系统设置",点击"环境变量"。

新建系统变量 MAVEN_HOME,变量值为 Maven 的安装目录 ,如下图

编辑系统变量 Path,添加变量值:;%MAVEN_HOME%\bin,如下图

在命令提示符下执行mvn -version ,输出结果如下图所示,证明 Maven 配置成功。

黑马程序员Maven全套教程,maven项目管理从基础到高级,Java项目开发必会管理工具maven

更多推荐

selenium不定位元素直接使用键盘操作(如弹框操作)

今天在使用selenium进行定位时,发现直接定位不了chrome的弹框,如这种弹框:使用的是下面这行代码driver.switch_to.alert.accept()运行报错,说是没有alertwindown。。。。啊?难道chrome的弹框不是用alert写的?emmm……还真是,现在很少使用alert这种原生弹框

MyBatis源码剖析之Mapper代理方式细节

MyBatis是一个流行的Java持久层框架,它提供了多种方式来执行数据库操作,其中之一就是通过Mapper代理方式。通过Mapper代理方式,开发者可以编写接口,然后MyBatis会动态地生成接口的实现类,从而避免了繁琐的SQL映射配置。具体代码如下:思考⼀个问题,通常的Mapper接⼝我们都没有实现的⽅法却可以使⽤

pytest自动化测试框架tep环境变量、fixtures、用例三者之间的关系

tep是一款测试工具,在pytest测试框架基础上集成了第三方包,提供项目脚手架,帮助以写Python代码方式,快速实现自动化项目落地。在tep项目中,自动化测试用例都是放到tests目录下的,每个.py文件相互独立,没有依赖,1个文件即1条用例,彼此分离。虽然用例也能相互引用,但是除非万不得已,一般不建议这么做,牵一

深入实现 MyBatis 底层机制的任务阶段 6-实现任务阶段 6- 在 WyxConfiguration, 读取 XxxMapper.xml,能够创建 MappperBean 对象

😀前言在Java应用程序中,与数据库交互是常见的任务之一。为了简化和规范数据库操作,我们通常使用对象关系映射(ORM)框架。ORM框架允许我们将数据库表映射到Java对象,并提供了一种便捷的方式来执行数据库操作。在这一过程中,配置文件起到了关键作用,它定义了数据库表和Java对象之间的映射关系,以及如何执行数据库操作

四维轻云平台倾斜模型三种加载方式及单体化操作介绍

为了优化倾斜模型浏览效果,「四维轻云」v1.4.1针对倾斜模型新增了三种加载方式;此外,平台还增加了单体化等功能。但很多用户还不会使用这些功能,小编就来向大家介绍一些如何设置倾斜模型的三种加载方式和单体化操作。一、倾斜模型三种加载方式在倾斜模型的编辑窗口中,可设置数据的加载方式,保存后再次加载数据时生效。1、默认方式(

js创建动态key的对象ES6和ES5的方法

前提:有个场景,循环数组,根据每一项的值,往一个数组中push一个新对象,对象的key不同要从数组中获取情况解析:push没有什么问题,问题就是创建一个动态key的对象。下面就说一下如何以参数为key的条件下创建对象错误写法:varkey='name';varobj={key:'张三'}这样并不能得到想要的结果,创建对

刻字机尖角补偿

1刻字机尖角补偿原理刀具切割直线段过渡方法在文章旋转偏心裁切刀切向跟踪及半径补偿已经有过说明。刻字机由于刀具半径的影响,切割直角时会不直会比较圆滑,而且在闭合曲线的下刀点会容易不闭合。使用尖角补偿可以克服这些问题。如上图所示,切割俩条相邻线段AB和BC时,刀心需要走的轨迹是从A'-->B'-->B''-->C'。由于刻

springboot 去掉netflix 禁用Eureka

目录报错解决方法方法一:去掉maven依赖方法二:直接在application配置文件里禁用eureka(偷懒方法)方法三:检查eureka配置的地址是否正确(确实需要使用eureka)报错如果你接手别人的项目,启动的时候会一直报这个错:发现有netflix,eureka相关字眼,2023-09-1316:25:47.

PID控制原理

一.概述开环控制:没有反馈闭环控制:有反馈调节的控制PID控制环节由比例,积分,微分调节三个环节构成,三个环节在控制过程中相互配合,共同对输入输出间的误差进行调控,最终满足控制要求,如下图所示Pid控制完整图示二、各部分说明1.Proportion(比例控制)比例控制就是好每次调节的高度是误差的Kp倍.说明::err是

数据分享|SAS数据挖掘EM贷款违约预测分析:逐步Logistic逻辑回归、决策树、随机森林...

全文链接:http://tecdat.cn/?p=31745近几年来,各家商业银行陆续推出多种贷款业务,如何识别贷款违约因素已经成为各家商业银行健康有序发展贷款业务的关键(点击文末“阅读原文”获取完整数据)。相关视频在贷款违约预测的数据(查看文末了解数据免费获取方式)的基础上,探索是否能通过借贷者的数据判断其违约风险,

使用kubasz快速搭建Kubernetes集群

Kubernetes安装Kubernetes也称为K8s,是用于自动部署、扩缩和管理容器化应用程序的开源系统。ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。使用ansible

热文推荐