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

【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.xdnf.cn/news/19823.html

相关文章:

  • 第四章 windows实战-emlog
  • 什么是流程图:流程六要素、三大结构及绘制规范总结
  • 【光照】Unity中的[经验模型]
  • 零工考勤不准、发薪扯皮?盖雅方案让每份工时都清晰可信
  • Web3兴起:重新定义互联网格局
  • 51c大模型~合集177
  • 对象存储 - 同步数据
  • 分布式爬虫的全局请求间隔协调与IP轮换策略
  • 开发(1)获取用户登录IP
  • 信息安全各类加密算法解析
  • 【C++】14. 多态
  • uniapp H5预览图片组件
  • 在VS Code中直接操控浏览器
  • CodeForge v25.0.3 发布:Web 技术栈全覆盖,编辑器个性化定制新时代
  • USB4与PCIe的技术融合:新一代接口协议的架构革新
  • 【论文阅读】Neuro-Symbolic Integration Brings Causal and Reliable Reasoning Proofs
  • 【报错记录】OpenGauss/磐维数据库连接报:org.postgresql.util.PSQLException: 致命错误: 账户被锁定
  • 分公司、工厂、出差人员远程访问办公系统,如何安全稳定又省钱?
  • HTML第六课:表格展示
  • 腾讯开源WMT2025冠军大模型:拿下30个第一,同类最佳
  • 2025 年普通人还可以期待 NFT 交易市场吗?
  • Meta生成式推荐:重塑万亿级推荐系统
  • FastAPI 介绍及示例开发
  • 深度学习之第五课卷积神经网络 (CNN)如何训练自己的数据集(食物分类)
  • 安装wsl报错0x800701bc
  • mapbox高阶,结合threejs(threebox)添加管道,实现管道流动效果
  • 数据库的锁级别
  • HTML5 简介和基础骨架
  • 快速生成商品图:4款国内免费AI工具盘点
  • 【golang长途旅行第36站】golang操作Redis