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

Maven基础知识

Maven是一款用于管理和构建Java项目的工具

Maven的作用:

  • 依赖管理:方便快捷的管理项目依赖的jar包,避免版本冲突问题
  • 统一项目结构:提供标准统一的项目结构
  • 项目构建:标准跨平台的自动化项目构建方式

maven创建的工程目录

  1. src下存放的main和test
  2. main是实际代码资源
  3. java是Java源文件目录
  4. resources是配置文件目录
  5. test是测试项目资源
  6. pom.xml是项目配置文件

pom中存放了描述当前工程的信息

Maven坐标

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

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

<groupId></groupId>存放的Maven创建的工程的包的名字
<artifactId></artifactId>存放的Maven创建的工程的名字

<version></version>当前项目的版本

这些叫做Maven的坐标

依赖管理

依赖配置

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

配置:

  1. 在pom.xml中编写<dependencies>标签
  2. 在<dependencies>标签中,使用<dependency>引入坐标
  3. 定义坐标的groupId,artifactId,version
  4. 点击刷新按钮,引入最新加入的坐标
依赖传递

依赖具有传递性

A项目当中依赖了jar包资源和b项目,b项目当中依赖了c项目和jar包资源

即使在a项目中没有添加c项目中的依赖也会有c项目中的依赖,这就叫做依赖的传递

直接依赖:在当前项目中通过依赖配置建立的依赖关系,如a和b与另一个jar包

间接依赖:被依赖资源如果依赖其他资源,当前项目间接依赖其他资源

如b项目依赖其他jar包和c项目那么a项目也会间接依赖c项目和jar包

排除依赖

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

在直接依赖的依赖中添加exclusion标签包裹住不想要使用的间接依赖

<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
依赖范围

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

scope默认是compile可以在主程序,测试程序,打包中使用

test可以在测试程序中使用

provided可以在主程序中和测试程序中使用

runtime可以在测试程序中和打包时使用

生命周期

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

Maven有三套相互独立的生命周期

  • clean:清理工作
  • default:编译,测试,打包,安装,部署
  • site:生成站点,发布站点

每一套生命周期包含一些阶段,阶段是有顺序的,后面的阶段依赖于前面的阶段

主要的生命周期阶段

  1. clean:移除上一次构建生成的文件
  2. compile:编译项目源代码
  3. test:使用合适的单元测试框架运行测试
  4. package:将编译后的文件打包
  5. install:安装项目到本地仓库

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


http://www.kler.cn/news/162045.html

相关文章:

  • ingress介绍和ingress通过LoadBalancer暴露服务配置
  • GateWay的路由与全局过滤器
  • Linux中的网络时间服务器
  • 新书推荐——《Copilot和ChatGPT编程体验:挑战24个正则表达式难题》
  • 『TypeScript』从零开始编写你的第一个TypeScript程序
  • HomeAssistant添加HACS插件并实现公网控制米家,HomeKit等智能家居
  • Linux——操作系统与进程的基础概念
  • python学习:opencv学习和numpy学习(持续更新)
  • python pandas dataframe常用数据处理总结
  • macOS 获取文件夹大小
  • 【学习记录】从0开始的Linux学习之旅——字符型设备驱动及应用
  • 常用性能工具与性能分析
  • 05 JQuery基础入门
  • 时间序列预测实战(二十二)TCN-LSTM实现单元和多元长期预测(专为新手编写的自研架构)
  • Qt实现右键菜单
  • Java研学-Lambda表达式
  • Python函数默认参数设置
  • C语言验证哥德巴赫猜想
  • AttributeError: module ‘importlib_resources‘ has no attribute ‘path‘ 解决方案
  • cpu 300% 爆满 内存占用不高 排查
  • 【AIGC】prompt工程从入门到精通
  • 专业130+总分400+云南大学通信847专业基础综考研经验(原专业课827)
  • 获取拼多多京东淘宝商品数据店铺数据店铺信息最推荐最好用的一种方式就是API接口
  • HTTPS加密协议:保护你的网络安全
  • ArcGIS Pro中怎么设置标注换行
  • yum源不起作用_yum无法安装程序_Linux默认源替换---Linux工作笔记067
  • YOLOv7独家最新改进《全网无重复》感知聚合SERDetect检测头:高效涨点,即插即用|检测头新颖改进
  • type property can‘t be changed 报错问题解决
  • Matlab 点云对称性检测
  • kyuubi整合flink yarn application model