Maven

目录

一,介绍

二,安装

2.1从官网下载Maven。

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

2.3.配置

新建系统变量 MAVEN_HOME和M2_HOME

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

2.4.本地仓库

2.5远程仓库

         2.6.验证

         3.Maven仓库

                  4.Maven坐标:

         5.Maven依赖管理:

         6.生命周期和插件:

         7.构建过程:

三,使用eclipse配置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 – Download Apache Mavenhttps://maven.apache.org/download.cgi?.

这里如果我们点击下载进去是一串数字的话,那么很可能这个数字串是表示文件的唯一标识符或编码。解决方法:下载低版本的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项目开发和构建的过程。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/83965.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Babylon.js着色器简明简称【Shader】

推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景 为了生成 BabylonJS 场景&#xff0c;需要用 Javascript 编写代码&#xff0c;BabylonJS 引擎会处理该代码并将结果显示在屏幕上。 场景可以通过改变网格、灯光或摄像机位置来改变。 为了及时显示可能的变化&#xff0c;屏…

函数的递归

1、什么是递归&#xff1f; 程序调用自身的编程技巧称为递归。 递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法&#xff0c;它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解&#x…

中国信息安全测评中心CISP家族认证一览

随着国家对网络安全的重视&#xff0c;中国信息安全测评中心根据国家政策、未来趋势、重点内容陆续增添了很多CISP细分认证。 今日份详细介绍&#xff0c;部分CISP及其子品牌相关认证内容&#xff0c;一定要收藏哟&#xff01; 校园版CISP NISP国家信息安全水平考试&#xff…

云原生Kubernetes:阿里云托管k8s集群ACK创建和使用

目录 一、理论 1.容器服务Kubernetes版 2.ACK Pro版集群概述 3.ACK版本说明 二、实验 1.创建专有版Kubernetes集群 三、问题 1.依赖检查未通过 一、理论 1.容器服务Kubernetes版 &#xff08;1&#xff09;概念 阿里云容器服务Kubernetes版&#xff08;Alibaba Cloud…

Mapbox加载天地图CGCS2000矢量瓦片地图

1.背景 最近在做天地图的项目&#xff0c;要基于MapBox添加CGCS2000矢量切片数据&#xff0c;但是 Mapbox 只支持web 墨卡托&#xff08;3857&#xff09;坐标系的数据。Github有专业用户修改了mapbox-gl的相关代码&#xff0c;支持CGCS2000的切片数据加载&#xff0c;并且修改…

RocketMQ Learning(一)

目录 一、RocketMQ 0、RocketMQ的产品发展 1、RocketMQ安装 1.1、windows下的安装 注意事项 1.2、Linux下的安装 1.3、源码的安装 1.4、控制台 2、消息发送方式 2.1、发送同步消息 2.2、发送异步消息 2.3、单向发送 3、消息消费方式 3.1、负载均衡模式&#xff0…

[PyTorch][chapter 46][LSTM -1]

前言&#xff1a; 长短期记忆网络&#xff08;LSTM&#xff0c;Long Short-Term Memory&#xff09;是一种时间循环神经网络&#xff0c;是为了解决一般的RNN&#xff08;循环神经网络&#xff09;存在的长期依赖问题而专门设计出来的。 目录&#xff1a; 背景简介 LSTM C…

mac-右键-用VSCode打开

1.点击访达&#xff0c;搜索自动操作 2.选择快速操作 3.执行shell脚本 替换代码如下&#xff1a; for f in "$" doopen -a "Visual Studio Code" "$f" donecommand s保存会出现一个弹框&#xff0c;保存为“用VSCode打开” 5.使用

Dockerfile 简单实战

将flask项目打包成镜像 1. 准备flask文件 创建 app.py 文件&#xff0c;内容如下 from flask import Flask app Flask(__name__)app.route(/) def hello_world():return Hello Worldif __name__ __main__:app.run(host0.0.0.0, port8000, debugTrue) 并开启外网访问&#xf…

C#--设计模式之单例模式

单例模式大概是所有设计模式中最简单的一种&#xff0c;如果在面试时被问及熟悉哪些设计模式&#xff0c;你可能第一个答的就是单例模式。 单例模式的实现分为两种&#xff1a; 饿汉式&#xff1a;在静态构造函数执行时就立即实例化。懒汉式&#xff1a;在程序执行过程中第一…

vue3报错

这是因为eslint对代码的要求严格导致的&#xff0c;可以在package.json里面删掉"eslint:recommended"&#xff0c;然后重启就可以正常运行了

长城汽车正式进军东盟市场,多款智能新能源亮相印尼车展

长城汽车在2023年印尼国际车展&#xff08;GAIKINDO Indonesia International Auto Show&#xff09;揭幕GWM品牌系列车型&#xff0c;包括坦克500 HEV、哈弗H6 HEV、哈弗JOLION HEV以及欧拉好猫。这一战略旨在进一步打入印尼市场。 长城汽车宣布将正式进军东盟市场&#xff0c…

jumpserver命令记录膨胀问题

一.背景 jumpserver堡垒机针对只是接管ssh来说&#xff0c;正常操作Linux的指令记录应该不会太多&#xff0c;每天有个几千条都已经算很多了。所以默认jumpserver采用MySQL作为存储介质本身也没啥问题。但是我们使用jumpserver对【MySQL应用】进行了托管&#xff0c;导致查询SQ…

HttpRunner自动化测试之httprunner运行方式

httprunner运行方式&#xff1a; httprunner在进行接口测试的时候&#xff0c;有两种运行方式 方式一&#xff1a;通过命令行&#xff08;CLI&#xff09;运行&#xff0c;核心命令如下 hrun&#xff1a;httprunner的缩写&#xff0c;功能与httprunner完全相同 例&#xff1a…

培训报名小程序-订阅消息发送

目录 1 创建API2 获取模板参数3 编写自定义代码4 添加订单编号5 发送消息6 发布预览 我们上一篇讲解了小程序如何获取用户订阅消息授权&#xff0c;用户允许我们发送模板消息后&#xff0c;按照模板的参数要求&#xff0c;我们需要传入我们想要发送消息的内容给模板&#xff0c…

Jenkins+Docker+SpringCloud微服务持续集成

JenkinsDockerSpringCloud微服务持续集成 JenkinsDockerSpringCloud持续集成流程说明SpringCloud微服务源码概述本地运行微服务本地部署微服务 Docker安装和Dockerfile制作微服务镜像Harbor镜像仓库安装及使用在Harbor创建用户和项目上传镜像到Harbor从Harbor下载镜像 微服务持…

网络安全设备及部署

什么是等保定级&#xff1f; 之前了解了下等保定级&#xff0c;接下里做更加深入的探讨 文章目录 一、网路安全大事件1.1 震网病毒1.2 海康威视弱口令1.3 物联网Mirai病毒1.4 专网 黑天安 事件1.5 乌克兰停电1.6 委内瑞拉电网1.7 棱镜门事件1.8 熊猫烧香 二、法律法规解读三、安…

【AI】Python调用讯飞星火大模型接口,轻松实现文本生成

随着chatGPT的出现&#xff0c;通用大模型已经成为了研究的热点&#xff0c;由于众所周知的原因&#xff0c;亚太地区调用经常会被禁&#xff0c;在国内&#xff0c;讯飞星火大模型是一个非常优秀的中文预训练模型。本文将介绍如何使用Python调用讯飞星火大模型接口&#xff0c…

全球飞机电磁阀总体规模分析

电磁阀是一种液压管路的电磁装置&#xff0c;通过使用电流产生磁场&#xff0c;从而驱动螺线管&#xff0c;控制阀中流体的流动。电磁阀作为流体控制自动化系统的执行器之一&#xff0c;有着结构紧凑、尺寸小、重量轻、密封良好、维修简便和可靠性高、节能降耗的特点&#xff0…

SpringBoot 的事务及使用

一、事务的常识 1、事务四特性&#xff08;ACID&#xff09; A 原子性&#xff1a;事务是最小单元,不可再分隔的一个整体。C 一致性&#xff1a;事务中的方法要么同时成功,要么都不成功,要不都失败。I 隔离性&#xff1a;多个事务操作数据库中同一个记录或多个记录时,对事务进…