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

【Maven】《十分钟搞清Maevn项目》

一、Maven

(1)介绍:

Maven是apache旗下的一个开源项目,它基于项目对象模型POM (Project Object Model) 的概念,通过一小段描述信息来管理项目的构建。

(Apache软件基金会,成立于1999年,是目前世界上最大的开源软件基金会)

在这里插入图片描述

仓库:用来存储资源,管理各种jar包。

  • 本地仓库:自己计算机上的一个目录
  • 中央仓库:由Maven团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
  • 远程仓库(私服)

各个插件就是清理,编译,测试,打包等

(2)作用:

一共三个作用:依赖管理、统一项目结构,项目构建

1.依赖管理

方便快捷的管理项目依赖的资源(jar包),避免版本冲突问题。

2.统一项目结构

提供标准、统一的项目结构

在这里插入图片描述

3.项目构建

标准跨平台(Linux、Windows、MacOs)的自动化项目构建方式

清理->编译->测试->打包->发布

在这里插入图片描述

(3)maven坐标

1.maven坐标概念

①Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置

②使用坐标来定义项目或引入项目中需要的依赖

2.mave坐标主要组成

①groupid:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.baidu)

②artifactid:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)

③version:定义当前项目版本号

<dependency><groupid>ch.qos.logback</groupid><artifactid>logback-classic</artifactid><version>1.2.3</version>
</dependency>

maven坐标通常在创建maven项目的时候输入,然后会在pom文件中显示出来;

(4)idea中设置:

(关闭项目之后,在Idea的主界面设置即可保持全局设置)

选择Maven的路径,并在runner(运行程序)中选择JRE

在这里插入图片描述

设置Java编译器,字节码版本选择对应的即可

在这里插入图片描述

idea导入maven工程:

​ 先将maven工程文件复制到项目文件夹中,然后可以在右侧的maven的加号中添加导入工程的pom.xml文件,或点击file->Project Structure点击加号导入pom文件,这样这个工程文件就会在项目中显示出来。

二、依赖管理

(1)依赖配置:

依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

配置:

  1. 在pom.xml中编写标签
  2. 在标签中 使用引入坐标
  3. 定义坐标的 groupid,artifactid,version
  4. 点击刷新按钮,引入最新加入的坐标
<dependencies><dependency><groupid>ch.qos.logback</groupid><artifactid>logback-classic</artifactid><version>1.2.3</version></dependency>
</dependencies>

注意事项:

  • 如果引入的依赖,在本地仓库不存在,将会连接远程仓库/中央仓库,然后下载依赖。(这个过程会比较耗时,耐心等待)
  • 如果不知道依赖的坐标信息,可以到https://mvnrepository.com/中搜索

(2)依赖传递

1.依赖具有传递性

  • 直接依赖:在当前项目中通过配置依赖建立的依赖关系
  • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

在这里插入图片描述

2.排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本

<dependency><groupid>ch.qos.logback</groupid><artifactid>logback-classic</artifactid><version>1.2.3</version><!-- 排除依赖: --><exclusions><exclusion><groupid>junit</groupid><artifactid>junit</artifactid></exclusion></exclusions>
</dependency>

在这里插入图片描述

(3)依赖范围

依赖的jar包,默认情况下,可以在任何地方使用。可以通过<scope>...</scope>设置其作用范围。

<dependency><groupid>ch.qos.logback</groupid><artifactid>logback-classic</artifactid><version>1.2.3</version><!-- 依赖范围 --><scope>test</scope></dependency>
scope值主程序测试程序打包(运行)范例
complie(默认)YYYlog4j
testYjunit
providedYYservlet-api
runtimeYYjdbc驱动

作用范围说明:

  • 主程序范围有效。(main文件夹范围内)
  • 测试程序范围有效。(test文件夹范围内)
  • 是否参与打包运行。(package指令范围内)

在这里插入图片描述

main中是主程序,test是测试程序,打包后的jar包可在target文件夹中找到

(4)生命周期

Maven的生命周期就是为了对所有的maven项目构建过程进行抽象和统一。

maven中有3套互相独立的生命周期:

  1. clean:清理工作
  2. default:核心工作,如:编译、测试、打包、安装、部署等
  3. site:生成报告、发布站点等

执行生命周期在idea右侧maven面板中选择对应生命周期即可。

生命周期本质上是maven各个插件的执行。

在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行

不一套的话,互不影响;

比如运行text不会执行clean但是会执行compile

在这里插入图片描述

生命周期阶段:

  1. clean:移除上一次构建生成的文件
  2. compile:编译项目源代码
  3. test:使用合适的单元测试框架进行测试(junit)
  4. package:将编译后的文件打包,如:jar、war等
  5. install:安装项目到本地仓库
http://www.dtcms.com/a/362484.html

相关文章:

  • AI Agent 扣子介绍
  • 优选算法的映射之妙:哈希表专题
  • 固定资产管理系统核心功能拆解:批量导入、OCR 识别有多高效?
  • Linux内核O(1)调度算法
  • 云计算学习笔记——Linux系统网络配置与远程管理(ssh)篇
  • 二进制流进行预览pdf、excel、docx
  • 手把手教你学 Simulink (1.3):探索Simulink模块库的奇妙世界
  • QT6(QFileSystemModel和QTreeView)
  • 第三方软件测评:第三方组件(如 jQuery、Bootstrap)的 WEB安全测试方法
  • Element Plus 表格表单校验功能详解
  • 封装Element UI中el-table表格为可配置列公用组件
  • ubantu20.04 git clone 无法连接问题与解决方法
  • Hard Disk Sentinel:全面监控硬盘和SSD的健康与性能
  • SQLSERVER基本cmd操作命令
  • 2025含金量高的市场岗位证书有哪些?
  • 4种有效方法将联想手机数据传输到电脑
  • 设计软件启动失败?“找不到vcruntime140.dll,无法继续执行代码” 场景化解决方案来了
  • 【Stream API】高效简化集合处理
  • 智能数据采集实战:从爬取到分析一步到位
  • 【音视频】VP8 与 VP9 技术详解及与 H.264 H.265 的对比
  • FFmpeg命令行音视频工具:高效实现格式转换与批量处理,支持音频提取与精准视频剪辑
  • 【LeetCode牛客数据结构】单链表的应用——环形链表及链表分割问题详解
  • 【音视频】WebRTC-NACK
  • 苹果手机文本转音频,自行制作背诵素材
  • CentOS 创建站点
  • 从零开始学习C#上位机开发学习进阶路线,窥探工业自动化和物联网应用
  • Windows---DWORD与IPVOID
  • milvus-standalone启动失败unhealthy,错误日志context deadline exceeded
  • 2023知识图谱与大模型融合实践研究报告
  • Centos10虚拟机安装Zabbix