当前位置: 首页 > news >正文

Maven的概述/简介/安装/基本使用/IDE配置/依赖管理

(一)Maven概述:

(1)概念:管理构建java项目的工具
(2)提供功能:

2.1 提供了一套标准化的项目结构
产生背景:一般来说,能够编写java语言的编程工具,例如eclipse,Intellij IDEA等,它们的项目结构是不一样的,因此在这个软件中编写的项目到了另一个软件里面是运行不通的。而maven提供了一套标准的项目结构,使得届时编写出来的代码文件结构皆以下图表示:
.csdnimg.cn/direct/07f627aae3384f1d955436a8a492555c.png)

那么此时几个软件之间的代码文件就可以互通
2.2 提供了一套标准化的构建流程
寻常的项目构建流程如下:编译----测试----打包----发布
但是到了大型的项目中,几百次如此的项目构建十分繁琐,因此maven提供了简便的构建方式:
在这里插入图片描述
右键maven项目,点击run maven,就会出现一个菜单,上面是一个又一个的操作。包括了test,package等项目构建操作。
2.3 提供了一套依赖管理机制
在以后的大型项目开发中,依赖的jar包将多达上百个,传统的去网上下载jar包是一件十分痛苦的事情,因为包可能下载不了,也可能使用效果不好,maven提供了一套类似于pip指令下载功能的机制,使得下载jar包功能变得简单。
在xml的配置文件中编入如下代码:
在这里插入图片描述
就可以自动下载并配置好jar包。由于其功能的便利性,目前位于项目构建工具市场第一的份额,而gradleant分别排于第二第三

(二)maven简介:

基于项目对象模型(Project object modle-------POM)的概念,通过一小段信息完成项目的构建,报告,文档
maven模型:
在这里插入图片描述

仓库:

概念:仓库其实是我们maven项目里面的一个文件夹,里面存放了我们可能会用得到的jar包,届时通过一段代码实现jar包的依赖,就是从这里面拿出来的。在pom.xml文件中,每一个项目或者jar包都具有自己的唯一标识,因此可以建立依赖
分类
1.本地仓库:自己计算机上的一个目录
2.中央仓库:Maven公司全球独有的唯一仓库
3.远程仓库:其他公司自己搭建的仓库
流程
当在xml文件中提供了一个坐标来下载jar包的时候,会先去本地仓库查找,没有的话就会去maven中心仓库查找并下载到本地仓库,然后从本地仓库依赖到本地项目。如果搭建了远程仓库,那么就会先从远程仓库中找,找不见就去中央仓库中找,然后再返回远程仓库。。。如下图:
在这里插入图片描述
私服的存在是为了提高下载速度的。

(三)maven的安装及配置:

(1)进入https://maven.apache.org/download.cgi网站,下载:
在这里插入图片描述
(2)下载完之后,解压,然后将bin文件目录配置成环境变量:
系统变量中:
在这里插入图片描述
Path中:

在这里插入图片描述
进入cmd验证:
在这里插入图片描述
说明环境变量配置成功:
(3)在xml文件中手动配置本地仓库地址以及搭建远程阿里云私服
在这里插入图片描述
在这里插入图片描述
通过vscode打开,进入后:
(1)找到截图中的位置:并且增加红框里面的代码:
在这里插入图片描述

  <localRepository>F:\apache-maven-3.9.11\mvn_resp</localRepository>

(2)找到如下截图中的位置:并且增加红框里面的代码:
在这里插入图片描述

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

至此配置完成。

(四)maven的基本使用

(1)maven常用命令:
1.compile 编译

打开powershell命令行,输入mvn compile,如果本地仓库中没有依赖jar包,则会从**远程仓库**/**中央仓库**去下,下好之后再次输入,就会发现迅速的BUILD SUCEESS,也就是编译成功。并且编译完后还会在src同级生成其代码的字节码文件

2.install 安装

输入mvn install 会将先前打包好的jar包添加进本地仓库中

3.package 打包

输入mvn pacjage 会将java类型的文件打包成jar文件,jar文件里面依旧是class字节码文件

4.clean 清理

输入mven clean 会删除先前编译过的字节码文件

5.test 测试

输入mvn test ,会对main文件中的代码进行运行

也就是说,除了clean这个操作之外,每个基本操作都会直接或间接的检查本地仓库是否有其依赖,没有的话就从中央或远程仓库去下。
例如如果没有编译好直接打包,就会去下载。

(2)maven的生命周期
概念:描述的是在一个构建项目流程中经历了几个事件。
种类:maven的生命周期一共被分为三类:
1.clean(清理工作):
pre-clean-----------clean------------post-clean
2.default(默认的核心工作:编测打安等):
compile------test--------package--------install
3.site(产生报告,发布站点):
pre-site-----------site------------post-site

特点:同一生命周期内,执行后面的指令,会自动执行前面的指令(即使前面的指令已经被执行过)

(五)IDEA配置maven:

5.1 新建一个项目配置好Maven
1.新建一个项目
2.点击settings,进入搜索maven,并找到这三行:
在这里插入图片描述
maven home path更改成你的已下载好的maven的路径,截止到版本那一层,不要往下,成功后会自动显示版本:Version:…
User setting file更改成你那个文件里面的settings.xml文件的路径,如上图为例。成功后下方的local repository也会自动更改成你那个目录里面的自建的本地仓库(如果你先前建立好了本地仓库的话)

5.2 maven坐标详解:
1.什么是坐标:
就是资源的唯一标识。
2.坐标由哪几部分构成,以mysql为例:
在这里插入图片描述
(1)groupId:一般是maven项目隶属组织的名称,一般是域名的反写,例如com.fjm,或者直接说mysql
(2)artifactId:你当前项目的名称
(3)version:你当前项目的版本,1.0/1.2/1.0.0/…随便你定。

5.3 创建maven项目
在这里插入图片描述
在此处点击new project:
进入页面,进入这一栏:
在这里插入图片描述
自定义项目名称,点击create,即可正常创建
5.4 导入maven项目:
在这里插入图片描述
点击Quick Definition,就可以在屏幕最右侧看到如下图标:
在这里插入图片描述
点击那个m图标,点击加号:
在这里插入图片描述
从里面找出要导入的maven项目的pom.xml文件点击之后,即可导入(由于目前没有多余的maven项目,因此不做演示):
在这里插入图片描述
注意:可以配置一个mavenhelper插件,使得日后可以更为简便的构建项目断点测试
在这里插入图片描述
下载完成之后重启IDEA即可配置成功。

(六)依赖管理

(1)6.1 xml语句编写:
标准格式:

<dependicies>
<dependency><groupId></groupId><artifactId></artifactId><version></version></dependency>
</dependicies>

如何快速粘贴依赖某个文件的这个代码块?
在浏览器上搜索导入的文件后面跟上maven,例如搜素mysql maven,并进入链接中:
在这里插入图片描述
里面有很多很多的版本。点击一个进去,下滑,找到这一部分:
在这里插入图片描述
里面就是待粘贴复制的对象。
复制粘贴进入xml文件中:
在这里插入图片描述
发现会报错。此时点击右上角的:
在这里插入图片描述
则可以自动下载。可是每次更改都需要手动点击下载太过于麻烦,因此可以如如此配置:
在这里插入图片描述
点击apply, ok。日后只要在xml文件中修改,就可以进行改动,不用再手动点击那个图标完成下载。同时,对于已在本地仓库中加上的依赖,可以通过Alt + Insert,切入快捷画面:
在这里插入图片描述
点击dependency,搜索想找到的依赖,例如mysql:
在这里插入图片描述
点击ok即可自动完成配置
(2)依赖范围:
代码标准格式:

<dependencies><dependency>....<scope>.....</scope> ############################<denpendency>
</dependencies>

在< scope >和< /scope >之间,可以填写如下的这些单词。每个单词都界定了依赖的范围。如果日常不显式写出scope,就默认范围是compile。也就是从编译,测试,运行都是可以使用的到这些依赖的。
在这里插入图片描述
至此,maven的基本知识已经过完

http://www.dtcms.com/a/410089.html

相关文章:

  • 构建 maven:3.8.7-jdk17 镜像
  • maven install依赖后 另一个项目 maven reload找不到包
  • 北京做网站的网络公司新网站改关键词
  • SpringCloud 项目阶段十:kafka实现双端信息同步以及ElasticSearch容器搭建示例
  • 解析前端框架 Axios 的设计理念与源码:从零手写一个支持 HTTP/3 的“类 Axios”最小核
  • 共享ip服务器做网站小型创意电子产品设计
  • [Dify] 知识库架构介绍与使用场景概述
  • NFS 服务器iSCSI 服务器
  • 如何确保CMS系统能够快速响应用户请求?全面性能优化指南
  • 【202509新版】Hexo + GitHub Pages 免费部署个人博客|保姆级教程 第三部
  • 同时使用ReactUse 、 ahooks与性能优化
  • 跨境电商怎么做一件代发宁波关键词排名优化平台
  • FreeFusion:基于交叉重构学习的红外与可见光图像融合
  • GraphRAG对自然语言处理中深层语义分析的革命性影响与未来启示
  • 数据分析-60-工业时序数据分析之开关频次
  • C++入门基础知识157—【用一篇博文简单了解数据结构之红黑树】
  • 做网站课程报告阜阳网站建设哪家好
  • 吃透 Java 中的 break 与 continue
  • 【Android之路】kotlin和Jatpack compose
  • 渗透测试入门:从网络抓包到Web安全基础
  • 阿里云CDN加速流量消耗大原因:动态加速
  • 云栖2025 | 阿里云自研大数据平台 ODPS 重磅升级:全面支持AI计算和服务
  • FreeRTOS内存分配与STM32内存布局详解
  • 外贸建站的公司wordpress如何汉化主题
  • phpcms网站系统 技术方案 系统框架图网站系统开发团队简介
  • vue3+ts项目实现陕西省3d地图
  • leetcode_146 LRU缓存
  • Python常用自动化测试框架—Pytest详解
  • 郑州英文网站建设软件开发平台搭建
  • 在 C# .NETCore 中使用 MongoDB(第 3 部分):跳过、排序、限制和投影