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

【Maven基础篇-黑马程序员】Maven项目管理从基础到高级,一次搞定!

文章目录

  • 前言
  • Maven简介
    • Maven是什么
    • Maven的作用
  • Maven的下载与安装
  • Maven基础概念
    • 仓库
    • 坐标
    • 仓库配置
      • 全局setting与用户setting区别
  • 第一个Maven程序(手工制作)
  • 第一个Maven程序(IDEA生成)
    • 使用模版(骨架)创建Maven工程
    • tomcat插件安装与web工程启动
  • 依赖管理
    • 依赖配置
    • 依赖传递
    • 依赖传递中的冲突问题
    • 可选依赖
    • 排除依赖
    • 依赖范围
    • 依赖范围传递性
  • 生命周期与插件
    • 项目构建生命周期
    • clean生命周期
    • default生命周期
    • site生命周期
    • 插件

前言

本专栏文章为观看黑马程序员《Maven全套教程》所做笔记,课程地址在这。如有侵权,立即删除。

Maven简介

Maven是什么

  • Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
  • POM(Project Object Model):项目对象模型
    在这里插入图片描述

Maven的作用

  • 项目构建:提供标准的、跨平台的自动化项目构建方式
  • 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
  • 统一开发结构:提供标准的、统一的项目结构
    在这里插入图片描述

Maven的下载与安装

观看黑马程序员视频教程:这里

Maven基础概念

仓库

  • 仓库:用于存储资源,包含各种jar包
    在这里插入图片描述
  • 仓库分类:
    • 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
    • 远程仓库:非本机电脑上的仓库,为本地仓库提供资源
      • 中央仓库:Maven团队维护,存储所用资源的仓库
      • 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
  • 私服的作用:
    • 保存具有版权的资源,包含购买或自主研发的jar
      • 中央仓库中的jar都是开源的,不能存储具有版权的资源
    • 一定范围内共享资源,仅对内部开放,不对外共享

坐标

  • 什么是坐标?
    Maven中的坐标用于描述仓库中资源的位置
  • Maven坐标主要组成:
    groupld:定义当前Maven项目隶属组织名换(通常是域名反写,例如:org.mybatis)
    artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS)
    version:定义当前项目版本号
    packaging:定义该项目的打包方式
  • Maven坐标的作用
    使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交由机器完成

仓库配置

观看黑马程序员视频教程:这里

全局setting与用户setting区别

  • 全局setting定义了当前计算器中Maven的公共配置
  • 用户setting定义了当前用户的配置

第一个Maven程序(手工制作)

在这里插入图片描述
在这里插入图片描述

  • cmd命令
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

第一个Maven程序(IDEA生成)

观看黑马程序员视频教程:这里

使用模版(骨架)创建Maven工程

观看黑马程序员视频教程:这里

tomcat插件安装与web工程启动

观看黑马程序员视频教程:这里

依赖管理

依赖配置

  • 依赖指当前项目运行所需要的jar,一个项目可以设置多个依赖
  • 格式
    在这里插入图片描述

依赖传递

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

在这里插入图片描述

依赖传递中的冲突问题

  • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
  • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

在这里插入图片描述

可选依赖

  • 可选依赖指对外隐藏当前所依赖的资源—不透明
    在这里插入图片描述

排除依赖

  • 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本—不需要
    在这里插入图片描述

依赖范围

  • 依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
  • 作用范围
    • 主程序范围有效(main文件夹范围内)
    • 测试程序范围有效(test文件夹范围内)
    • 是否参与打包(package指令范围内)

在这里插入图片描述

依赖范围传递性

  • 带有依赖范围的资源在进行传递时,作用范围将受到影响

在这里插入图片描述

生命周期与插件

项目构建生命周期

  • Maven构建生命周期描述的是一次构建过程经历了多少个事件
  • Maven对项目构建的生命周期划分为3套
    • clean:清理工作
    • default:核心工作,例如编译,测试,打包,部署等
    • site:产生报告,发布站点等

clean生命周期

在这里插入图片描述

default生命周期

在这里插入图片描述

注:执行其中一条时,会将其上面的全部执行一遍,也就是说只会顺序从第一条开始执行。

site生命周期

在这里插入图片描述

插件

  • 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
  • 默认maven在各个生命周期上绑定有预设的功能
  • 通过插件可以自定义其他功能

在这里插入图片描述

相关文章:

【Maven基础篇-黑马程序员】Maven项目管理从基础到高级,一次搞定!

文章目录 前言Maven简介Maven是什么Maven的作用 Maven的下载与安装Maven基础概念仓库坐标仓库配置全局setting与用户setting区别 第一个Maven程序(手工制作)第一个Maven程序(IDEA生成)使用模版(骨架)创建Ma…...

MySQL进阶 —— 超详细操作演示!!!(下)

MySQL进阶 —— 超详细操作演示!!!(下) 五、锁5.1 概述5.2 全局锁5.3 表级锁5.4 行级锁 六、InnoDB 引擎6.1 逻辑存储结构6.2 架构6.3 事务原理6.4 MVCC 七、MySQL 管理7.1 系统数据库7.2 常用工具 MySQL— 基础语法大…...

SVM(上):如何用一根棍子将蓝红两色球分开?

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据开发、数据分析等。 🐴欢迎小伙伴们点赞👍🏻、收藏⭐️、…...

libevent源码学习笔记

libevent源码学习笔记 libevent安装libevent源码解析(1)事件对象(2)事件操作(3)事件循环(4)事件处理 常用指令问题记录问题一:长连接的管理问题二:连接关闭问…...

C++ opencv设置视频的捕获方式为 MJPG设置失败

我有一款4k摄像头,在设置分辨率为4k的时候总是出现帧率不够的情况, 使用命令查看 v4l2-ctl --device/dev/video0 --list-formats-ext发现 v4l2-ctl --device/dev/video0 --list-formats-ext ioctl: VIDIOC_ENUM_FMTType: Video Capture[0]: MJPG (Moti…...

计算机网络两位伟人

克劳德艾尔伍德香农 克劳德艾尔伍德香农(Claude Elwood Shannon)是一位美国数学家、电子工程师和计算机科学家,被誉为“信息论之父”。他于1916年生于密歇根州,于2001年去世。以下是一些关于他的详细介绍: 信息论的奠…...

机器学习 不均衡数据采样方法:imblearn 库的使用

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...

MySQL系统与内建函数

在游戏开发、特别是像《三国志》这样的大型策略游戏中,数据分析是不可或缺的。从玩家行为到游戏内的战役结果,都需要通过高效的数据分析来优化游戏体验。MySQL的系统和内建函数为这样的分析提供了强大的工具。 本文将详细介绍MySQL中常用的系统与内建函数,并通过《三国志》…...

STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口)

STM32CubeMX学习笔记-USB接口使用(CDC虚拟串口) 一、USB简介二、新建工程1. 打开 STM32CubeMX 软件,点击“新建工程”2. 选择 MCU 和封装3. 配置时钟4. 配置调试模式 三、USB3.1 参数配置3.3 配置时钟3.4 USB Device 四、生成代码五、查看端口…...

腾讯云 Cloud Studio 实战训练营结营活动获奖公示

点击链接了解详情 “腾讯云 Cloud Studio 实战训练营” 是由腾讯云联合 CSDN 推出的系列开发者技术实践活动,通过技术分享直播、动手实验项目、优秀代码评选、有奖征文活动等,让广大开发者沉浸式体验腾讯云开发者工具 Cloud Studio 的同时,实…...

使用晶体管做布尔逻辑和逻辑门

目录 二进制,三进制,五进制 true,false表示0,1 早期计算机采用进制 布尔逻辑 三个基本操作:NOT,AND,OR 基础“真值表” NOT 如何实现? AND如何实现? OR如何实现? 图标表示…...

Linux系统编程系列之线程的信号处理

一、为什么要有线程的信号处理 由于多线程程序中线程的执行状态是并发的,因此当一个进程收到一个信号时,那么究竟由进程中的哪条线程响应这个信号就是不确定的,只能取决于哪条线程刚好在信号达到的瞬间被调度,这种不确定性在程序逻…...

【C语言】青蛙跳台阶 —— 详解

一、问题描述 跳台阶_牛客题霸_牛客网 (nowcoder.com) LCR 127. 跳跃训练 - 力扣(LeetCode) 二、解题思路 1、当 n 1 时,一共只有一级台阶,那么显然青蛙这时就只有一种跳法 2、当 n 2 时,一共有两级台阶&#xff…...

Java - 基本数据类型和封装类型

基本类型有默认值,而包装类型初始为null。然后再根据这两个特性进行分业务使用,在阿里巴巴的规范里所有的POJO类必须使用包装类型,而在本地变量推荐使用基本类型。 Java语言提供了八种基本类型。六种数字类型(四个整数型&#xff…...

day-63 代码随想录算法训练营(19) 图论 part 02

1020.飞地的数量 分析:求不跟边界接壤的陆地的数量 思路一:深度优先遍历 先从四个侧边找陆地,然后进行深度优先遍历,把所有接壤的陆地(1)全部转换成海洋(0) 深度优先遍历&#xf…...

SpringBoot的全局异常拦截

在 Spring Boot 中,可以通过使用 ControllerAdvice 注解和 ExceptionHandler 注解来实现全局异常拦截。 RestControllerAdvice RestControllerAdvice 是 Spring Framework 提供的注解,用于定义全局异常处理类,并且结合 ExceptionHandler 注…...

『力扣每日一题11』:转换成小写字母

一、题目 给你一个字符串 s ,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。 示例 1: 输入:s "Hello" 输出:"hello"示例 2: 输入:s "here" 输…...

复习Day07:链表part03:21. 合并两个有序链表、2. 两数相加

之前的blog链接:https://blog.csdn.net/weixin_43303286/article/details/131700482?spm1001.2014.3001.5501 我用的方法是在leetcode再过一遍例题,明显会的就复制粘贴,之前没写出来就重写,然后从拓展题目中找题目来写。辅以Lab…...

Ubuntu中启动HDFS后没有NameNode解决办法

关闭进程: stop-dfs.sh 格式化: hadoop namenode -format 出现报错信息: 23/10/03 22:27:04 WARN fs.FileUtil: Failed to delete file or dir [/usr/data/hadoop/tmp/dfs/name/current/fsimage_0000000000000000000.md5]: it still exi…...

AWS-Lambda之导入自定义包-pip包

参考文档: https://repost.aws/zh-Hans/knowledge-center/lambda-import-module-error-python https://blog.csdn.net/fxtxz2/article/details/112035627 简单来说,以 " alibabacloud_dyvmsapi20170525 " 包为例 ## 创建临时目录 mkdir /tmp cd ./tmp …...

从‘咖啡环’到‘热点’富集:超疏水表面如何将SERS检测灵敏度提升几个数量级?

从“咖啡环效应”到分子富集革命:超疏水表面如何重塑痕量检测极限 清晨的咖啡杯边缘总留下一圈深色痕迹,这个看似普通的日常现象背后,隐藏着改变分子检测游戏规则的物理机制。当科研人员将这种被称为"咖啡环效应"的液滴蒸发现象与表…...

如何快速掌握LeRobot:从零开始部署机器人AI的完整实践指南

如何快速掌握LeRobot:从零开始部署机器人AI的完整实践指南 【免费下载链接】lerobot 🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning 项目地址: https://gitcode.com/GitHub_Trending/le/lerobot 想要将最先进的A…...

Vivado里配置RFSoC数据转换器IP,这10个参数新手最容易搞错(附PG269避坑指南)

Vivado中RFSoC数据转换器IP配置的10个关键参数解析与实战避坑指南 第一次在Vivado中配置RFSoC的数据转换器IP核时,面对密密麻麻的参数选项,即使是经验丰富的FPGA工程师也可能感到无从下手。RFSoC作为集成了高速数据转换器的异构计算平台,其配…...

汽车电喷系统间歇性启动故障诊断:从信号缺失到精准修复

1. 故障现象与初步排查:一个“不合常理”的启动问题我父亲打电话来,说他的皮卡又启动不了了,得“灌点油”才能着车。我一听就觉得不对劲,这车是电喷的,又不是化油器老古董,哪有用汽油“灌喉”来启动的道理&…...

西门子S7-300/400老系统改造:用DP/DP Coupler打通新旧产线数据(附Step7组态避坑点)

西门子S7-300/400老系统改造:用DP/DP Coupler打通新旧产线数据(附Step7组态避坑点) 在工业自动化领域,老旧产线升级改造往往面临新旧设备通讯协议不兼容的难题。当传统S7-300系统需要与现代化S7-400或带PN接口的PLC进行数据交互时…...

软考(系统架构师)-论分布式缓存架构设计及其应用

摘要 随着企业协同办公系统用户规模与并发请求量持续增长,作为核心支撑的用户中心系统面临高并发查询、数据库压力过载、通讯录同步缓慢、服务 CPU 与内存频繁告警等性能瓶颈。本人在项目中担任系统架构师,负责用户中心分布式多级缓存架构的选型、设计、…...

KMS_VL_ALL_AIO架构解析:Windows与Office智能激活的技术方案

KMS_VL_ALL_AIO架构解析:Windows与Office智能激活的技术方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO KMS_VL_ALL_AIO是一款基于KMS协议实现的Windows和Office智能激活解决方案…...

别再只盯着密钥了!深入ESP32 eFuse,看懂flash加密背后的硬件安全逻辑

别再只盯着密钥了!深入ESP32 eFuse,看懂flash加密背后的硬件安全逻辑 当你在ESP32项目中使用flash加密功能时,是否曾疑惑过:为什么简单地烧录几个eFuse位就能实现固件保护?那些看似神秘的DISABLE_DL_DECRYPT、FLASH_CR…...

别再算错了!等保2.0 2021版测评新规下,多系统/多机房得分计算保姆级教程

等保2.0 2021版多系统测评得分计算实战指南 当企业拥有多个机房或业务系统时,等保测评得分计算往往成为安全负责人最头疼的问题。2021版测评新规对多对象场景的计算方式进行了重要调整,这些变化直接影响最终得分和整改策略。本文将用真实案例拆解新旧计算…...

LSLib:让《神界原罪》和《博德之门3》MOD制作变得高效完整的实用指南

LSLib:让《神界原罪》和《博德之门3》MOD制作变得高效完整的实用指南 【免费下载链接】lslib Tools for manipulating Divinity Original Sin and Baldurs Gate 3 files 项目地址: https://gitcode.com/gh_mirrors/ls/lslib 你是否曾想为《神界原罪》或《博德…...