Maven

简介: Maven

前言:今天给大家分享一个Maven,它是一个基于Java的项目管理工具,使用它可以减少了开发人员的工作量,提高了项目的整体质量和交付效率

一,介绍

Maven是一个基于Java的项目管理工具,它是Apache软件基金会的一个开源项目。

Maven的主要目标是帮助开发人员管理项目的软件构建、报告和文档等方面的复杂性

Maven通过提供一个一致性的项目结构和可复用的构建模型,简化了项目构建和依赖管理的过程。它使用了一个称为项目对象模型(Project Object Model,POM)的XML文件来描述项目的配置和依赖关系。

使用Maven,开发人员可以轻松地构建项目、管理项目的依赖关系、运行测试、生成报告以及打包和发布项目。这些功能可以通过运行Maven命令来实现,例如"mvn clean install"用于构建项目并将其安装到本地存储库。

Maven的核心概念包括:

  1. POM: 一个项目的POM文件描述了项目的元数据和配置信息,包括项目的坐标、依赖、插件、构建和部署等。
  2. 坐标: 一个项目的坐标唯一标识了它在Maven存储库中的位置,包括GroupId(组织或公司)、ArtifactId(项目名称)和Version(版本号)。
  3. 依赖管理: Maven能够自动下载并管理项目所需的依赖项,开发人员只需要在POM文件中声明依赖的坐标即可。
  4. 生命周期和插件: Maven定义了一组标准的构建生命周期,开发人员可以通过配置不同的插件来定制构建过程。

理解:总的来说,Maven简化了Java项目的构建和管理过程,提供了一种结构化和可扩展的方式来组织项目,以及处理项目的依赖关系和构建过程。通过使用Maven,开发人员可以更高效地开发和交付他们的软件。关于Maven的目的:

  1. 简化项目构建:Maven通过提供一个统一的构建模型,定义了一套标准的构建流程,使得开发人员能够更轻松地构建项目。开发人员只需要编写一个简单的POM文件来描述项目,Maven会根据POM文件自动化执行所有构建过程。这意味着你不需要手动执行繁琐的编译、测试、打包等操作,Maven会自动为你完成。(这里如果实在不理解,我举一个例子:当我们使用MySQL5.8的版本需要更改时,这里我们只要改一个配置文件中的pom.xml:Maven 项目核心配置文件就可以了
  2. 管理项目依赖:在软件开发中,项目通常需要依赖许多外部的第三方库和组件。Maven提供了一个简化和集中管理项目依赖的机制。你只需要在POM文件中声明需要的依赖Maven会自动下载并管理这些依赖项的版本和传递性依赖,确保项目的依赖关系正确且一致。
  3. 标准化项目生命周期:Maven引入了一套标准的生命周期概念,定义了一系列的构建阶段(例如编译、测试、打包、部署等)。这些阶段可以通过配置插件来实现特定的功能。通过遵循这个标准的生命周期,开发人员可以更好地组织项目,使得开发、构建和部署的过程更加统一和可控。
  4. 提供可重用的构建模块:Maven鼓励开发人员将常用的构建逻辑和步骤抽象为可重用的构建插件和模块。这样一来,其他项目可以直接使用这些插件和模块,从而避免了重复编写相同的构建逻辑,提高了开发效率。
  5. Maven的目的是让开发人员能够更专注于软件开发而不是繁琐的构建和依赖管理工作。它提供了一种标准化和自动化的方式来构建和管理Java项目,减少了开发人员的工作量,提高了项目的整体质量和交付效率

二,安装

2.1从官网下载Maven。

这里如果我们点击下载进去是一串数字的话,那么很可能这个数字串是表示文件的唯一标识符或编码。解决方法:下载低版本的Maven。

2.2下载完成后,解压到合适的位置即可,例如: D:\apache-maven-3.6.3

2.3.配置

这里可以参考我之前发配置jdk1.8的博客。

这里我使用的电脑版本是win11的,win10,win7版本配置要注意补分号。

新建系统变量 MAVEN_HOMEM2_HOME

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

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

2.4.本地仓库

  1. 在任意盘符下新建文件夹repository(文件夹名称自定义),新建文件夹的路径则为:D:\repository
  2. 打开apache-maven-3.5.0目录下的 conf/settings.xml 文件
  3. 找到节点localRepository,在注释外添加自己仓库的地址并保存settings.xml 文件

2.5远程仓库

默认远程仓库在国外,为提高访问效率通常会使用国内阿里云远程仓库,打开settings.xml 文件,找到mirrors标签,复制下面的代码,保存即可

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

2.6.验证

证maven本地仓库和远程仓库是否配置成功,按住win+R 输出cmd弹出命令行窗口。

首次执行 mvn help:system 命令,Maven相关工具自动帮我们到Maven中央仓库下载缺省的或者Maven中央仓库更新的各种配置文件和类库(jar包)到Maven本地仓库中。

下载完各种文件后, mvn help:system 命令会打印出所有的Java系统属性和环境变量:

这个是失败的标志,如果失败了就重新联网下载

这个是成功的标志

3.Maven仓库

Maven 在某个统一的位置存储所有项目的构件,这个统一的位置,我们就称之为仓库。换言之,仓库就是存放依赖和插件的地方

maven依赖的查找顺序:本地仓库 -> 私服 -> 中央仓库

关于仓库分为:本地仓库,私服,中央仓库;其中私服和中央仓库都属于远程仓库。

中央仓库:maven团队自身维护的仓库,属于开源的;

私服:各公司/部门等小范围内存储资源的仓库,私服也可以从中央仓库获取资源;

本地仓库:开发者自己电脑上存储资源的仓库,也可从远程仓库获取资源;

私服的作用:

  • 保存具有版权的资源,包含购买或自主研发的jar
  • 一定范围内共享资源,能做到仅对内不对外开放

4.Maven坐标:

每个Maven项目都有一个唯一的坐标来标识它的身份。这个坐标由三个主要部分组成:GroupId(组织或公司标识符)、ArtifactId(项目标识符)和Version(版本号)。这些坐标用于唯一地确定一个项目所需的依赖项(例如菜鸟驿站一样,当我们要取用某个快递时,根据快递的位置摆放取)。

Maven 坐标主要由以下元素组成:

  • groupId: 项目组 ID,定义当前 Maven 项目隶属的组织或公司,通常是唯一的。它的取值一般是项目所属公司或组织的网址或 URL 的反写,例如 net.biancheng.www。
  • artifactId: 项目 ID,通常是项目的名称。
  • version:版本。
  • packaging:项目的打包方式,默认值为 jar。

5.Maven依赖管理:

Maven使用依赖管理来管理项目所需的依赖项。在POM文件中,你可以声明项目所需要的依赖项和它们的版本。Maven会自动下载这些依赖项,并处理它们之间的传递性依赖关系。

6.生命周期和插件:

Maven定义了一套标准的构建生命周期,用于在项目构建过程中执行不同的阶段。每个生命周期阶段都包含了一系列的插件目标(Plugin Goal),用于执行特定的构建任务。开发人员可以根据需要配置和使用各种插件,来实现项目构建过程中所需的特定功能。

7.构建过程:

当你执行Maven构建命令时,Maven会按照生命周期的定义来执行构建过程。在这个过程中,Maven会检查POM文件,处理依赖项,执行各个生命周期阶段的插件目标,最终生成构件(输出的可执行文件、库文件等)。

三,使用eclipse配置maven项目

出现这个项目结构说明配置ok了

 

 

maven仓库:在这里可以导配置文件信息。

Maven Repository: Search/Browse/Explore (mvnrepository.com)

查找配置依赖

 

 

 

如果新建一个类有了提示,并且测试没问题

 

能够跳转到jsp,显示jsp内容那就说明我们的这个maven项目已经搭建好了。

总结:      

1优点导不同版本的依赖

2重复利用理解的项目综合模型

3通过配置POM文件和使用合适的插件,Maven能够自动化地进行项目的构建、依赖管理和生命周期管理,简化了Java项目开发和构建的过程。

 

目录
相关文章
|
8月前
|
Java Maven
13Maven - Maven小总结
13Maven - Maven小总结
24 0
|
18天前
|
Java Maven 开发工具
Maven 特点
Maven是一个遵循统一规则、强调依赖管理的Java项目构建工具。它拥有庞大的库,支持自动更新和扩展,允许使用Java或脚本语言编写插件。通过模型驱动的构建方式,Maven能生成JAR、WAR等预定义输出,同时自动生成一致性项目站点,包括文档和开发状态报告。Maven简化了发布管理,与源码控制系统集成,确保向后兼容。子项目能继承父项目依赖,无需指定版本号,且支持并行构建,提升编译速度。改进的错误报告提供详细的wiki链接帮助解决问题。
|
18天前
|
存储 Java 关系型数据库
|
18天前
|
Java Maven
maven 使用小技巧
maven 使用小技巧
20 0
|
18天前
|
存储 XML Java
maven
maven
293 0
|
8月前
|
安全 Java 应用服务中间件
Maven-1
Maven-1
31 0
|
10月前
|
Java 程序员 数据库连接
Maven的使用
Maven的使用
64 0
|
Java Maven Android开发
eclipsp整合maven
eclipsp整合maven
96 0
eclipsp整合maven
|
Oracle Java 关系型数据库
Maven是什么
Maven是什么,maven的安装,maven的仓库配置方式
Maven是什么

热门文章

最新文章