Maven maven项目构建的生命周期 Maven安装配置 IDEA 配置 Maven
一,Maven的概述
Maven的作用:专门用于管理和构建Java项目的工具,它的主要功能有:
- 提供了一套标准化的项目结构
- 提供了一套标准化的构建流程(编译,测试,打包,发布……)
- 提供了一套依赖管理机制
标准化的项目结构:
而Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目完全一样,所以IDE创建的Maven项目可以通用
如下Maven构建的项目结构:
标准化的构建流程:
依赖管理:
依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件)。如之前我们项目中需要使用JDBC和Druid的话,就需要去网上下载对应的依赖包,复制到项目中,还要将jar包加入工作环境这一系列的操作。如下图
而Maven使用标准的 ==坐标== 配置来管理各种依赖,只需要简单的配置就可以完成依赖管理
1.Maven简介
Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。
官网 :Welcome to Apache Maven – Mavenhttp://maven.apache.org/
2.Maven模型
- 项目对象模型 (Project Object Model)
- 依赖管理模型(Dependency)
- 插件(Plugin)
项目对象模型就是将我们自己抽象成一个对象模型,有自己专属的坐标。
依赖管理模型则是使用坐标来描述当前项目依赖哪些第三方jar包。
3.Maven仓库
创建Maven项目,在项目中使用坐标来指定项目的依赖,那么依赖的jar包到底存储在什么地
方呢?其实依赖jar包是存储在我们的本地仓库中。而项目运行时从本地仓库中拿需要的依赖jar包。
- 本地仓库:自己计算机上的一个目录
- 中央仓库:由Maven团队维护的全球唯一的仓库
地址:Central Repository:Central Repository:https://repo1.maven.org/maven2/Central Repository:远程仓库(私服):一般由公司团队搭建的私有仓库
- 当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包:
如果有,则在项目直接引用;
如果没有,则去中央仓库中下载对应的jar包到本地仓库。
- 还可以搭建远程仓库,将来jar包的查找顺序则变为:
本地仓库——远程仓库——中央仓库
二.Maven安装配置
1.Maven的下载
官方网站:Welcome to Apache Maven – Mavenhttp://maven.apache.org/下载页面:Download Apache Maven – Maven
http://maven.apache.org/download.cgi
- 点击archives(存档)
- 选择版本,然后选择binaries(二进制文件)
- 下载压缩包
2.Maven的安装
注意:maven的安装需要依赖JDK的安装,所以必须先安装完成JDK且配置好jdk环境变量后在进行maven的安装!!
maven的安装很简单,就是直接解压文件就行了。(安装路径避免包含中文!)
目录名 | 功能说明 |
bin | 二进制的可执行文件,如:mvn.cmd是maven的核心可执行文件 |
boot | 第三方类加载器插件,类似于ClassLoader |
conf | 配置文件夹,其中的settings.xml是用于配置本地仓库的 |
lib | maven自身运行所需要的jar包 |
3 Maven的环境变量配置
右击我的电脑,选择属性
- 点击高级系统设置
- 点击环境变量
- 在系统变量区里点击:新建
- 新建变量名为MAVEN_HOME,变量值为你的maven解压文件的目录,设置完成后点击确定
- 系统变量里双击Path变量,或者单击path再点编辑
- 新建%MAVEN_HOME%\bin
- 键盘win+r 弹出运行,输入cmd,点击确定
- 在cmd窗口中键入mvn -version后回车,如果出现下面的版本号,及说明maven安装成功
4 本地仓库的配置
- 在一个磁盘中创建一个文件夹,取名repository
- 打开maven的安装目录,选择conf文件夹中的setting.xml文件
- 修改文件settings.xml
打开settings.xml文件:发现本地仓库默认的地址为当前用户的/.m2/repository目录。
我们需要自己重新设置本地仓库的地址。使用localRepository配置,修改成刚刚创建的文件夹的目录。
5 配置阿里云私服
安装好Maven时,要及时的修改Maven下载的镜像地址,最好改为国内的下载镜像,例如阿里云中央仓库,华为云中央仓库。
同样打开conf文件夹中的setting.xml文件,找到标签,把下面的代码复制到标签中。
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public
</url>
</mirror>
6 配置JDK
打开setting.xml,ctrl+f,搜索/path/to/tomcat/instance复制以下代码到红线位置,这里是用的1.8的,根据每个人不同自己来适当修改
<!-- java1.8版本 -->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.sour
ce>
<maven.compiler.target>1.8</maven.compiler.targ
et>
<maven.compiler.compilerVersion>1.8</maven.comp
iler.compilerVersion>
</properties>
</profile>
三.IDEA 配置 Maven
IDEA配置Maven环境
- 选择 IDEA中 File --> Settings
- 搜索 maven,每次在 IDEA 创建 Maven 项目时,按照上述方法进行配置即可。
2 Maven 坐标详解
- Maven 中的坐标是资源的唯一标识
- 使用坐标来定义项目或引入项目中需要的依赖
Maven 坐标主要组成
- groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.baidu)
- artifactId:定义当前Maven项目名称(通常是模块名称,例如 product-service)
- version:定义当前项目版本号
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
3 IDEA创建Maven项目
- 创建模块,选择Maven,点击Next
- 填写模块名称,坐标信息,点击finish,创建完成
- 创建好的项目目录结构如下:
4 IDEA导入Maven项目
- 选择右侧Maven面板,点击 + 号
- 选中对应项目的pom.xml文件,双击即可
- 如果没有Maven面板,选择
View --> Appearance --> Tool Window Bars
5 依赖管理
使用坐标引入jar包
在项目的 pom.xml 中编写 标签
在 标签中 使用 引入坐标
定义坐标的 groupId,artifactId,version
点击刷新按钮,使坐标生效
具体的坐标我们可以到如下网站进行搜索:https://mvnrepository.com/
快捷方式导入jar包的坐标
- 在 pom.xml 中 按 alt + insert,选择 Dependency
- 在弹出的面板中搜索对应坐标,然后双击选中对应坐标
- 点击刷新按钮,使坐标生效
依赖范围
通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用
范围:编译环境、测试环境、运行环境。
如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。 那么这个依赖就只能作用在测试环境,其他环境下不能使用。
- compile :作用于编译环境、测试环境、运行环境。
- test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值
- provided :作用于编译环境、测试环境。我们后面会学习
- servlet-api ,在使用它时,必须将 scope 设置为该值,不然运行时就会报错
- runtime : 作用于测试环境、运行环境。jdbc驱动一般将
- scope 设置为该值,当然不设置也没有任何问题
注意:如果引入坐标不指定 scope标签时,默认就是 compile值。以后大部分jar包都是使用默认值。
四.maven项目构建的生命周期
Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际工作,在Maven的设计中,实际任务(如源代码编译)都交由插件来完成。
maven拥有三套相互独立的生命周期,分别是clean,default和site。
clean 生命周期的目的是清理项目 ,default 生命周期的作用是构建项目 ,site 生命周期的目的是构建项目站点
clean生命周期
clean生命周期的目的是清理项目,它包含三个阶段:
- pre-clean 执行一些清理前需要完成的工作;
- clean 清理上一次构建生成的文件;
- post-clean 执行一些清理后需要完成的工作;
default生命周期
default生命周期定义了真正构建项目需要执行的所有步骤,它是所有生命周期中最核心的部分。其中的重要阶段如下:
- compile :编译项目的源码,一般来说编译的是
- src/main/java目录下的java文件至项目输出的主classpath目录中;
- test :使用单元测试框架运行测试,测试代码不会被打包或部署;
- package :接收编译好的代码,打包成可以发布的格式,如jar和war;
- install: 将包安装到本地仓库,供其他maven项目使用;
- deploy :将最终的包复制到远程仓库,供其他开发人员或maven项目使用;
site生命周期
site生命周期的目的是建立和发布项目站点,maven能够基于pom文件所包含的项目信息,自动生成一个友好站点,方便团队交流和发布项目信息。该生命周期中最重要的阶段如下:
- site :生成项目站点文档;
maven生命周期相关命令
- compile :编译
- clean:清理
- test:测试
- package:打包
- install:安装项目到本地仓库
五.其他
编译插件
当我们点击compile编译的时候发现maven编译的时候使用的插件是:maven-compiler-plugin:3.1:compile (default-compile) 。该插件默认编译的jdk版本是1.5.编译生成的.class
文件,让idea中的jdk1.8运行,1.8的jdk运行1.5编译的class文件,会显示已过时字样。所以这里我们需要手动配置下jdk的编译版本,使用jdk1.8.
测试插件
Maven的test指令运行测试代码存在中文乱码问题, 用这个插件可以解决
更新依赖索引
有时候给idea配置完maven仓库信息后,在idea中依然搜索不到仓库中的jar包。这是因为仓库中的jar包索引尚未更新到idea中。这个时候我们就需要更新idea中maven的索引了,
具体做法如下:打开设置----搜索maven----Repositories----选中本地仓库-----
点击Update
相关文章:
Maven maven项目构建的生命周期 Maven安装配置 IDEA 配置 Maven
一,Maven的概述 Maven的作用:专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化的项目结构提供了一套标准化的构建流程(编译,测试,打包,发布……)提…...
和为 K 的子数组(java)
题目描述: 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入…...
关于Redux的学习(包括Redux-toolkit中间件)
目录 什么是 Redux ? 我为什么要用 Redux ? 我什么时候应该用 Redux ? Redux 库和工具 React-Redux Redux Toolkit Redux DevTools 拓展 一个redux小示例 代码示例(很有用): Redux 术语 Actions Reducers Store Dis…...
MIT 6.S081 | 操作系统 | Lab1: Xv6 and Unix utilities
Lab1: Xv6 and Unix utilities 文章目录 Lab1: Xv6 and Unix utilities实验任务1.启动XV6(easy)2.Sleep(easy)-练手的,就是熟悉一下怎么在xv6项目中加.c文件,生成可执行程序并进行测试的1.解析rm.c2.argc 如何被赋值3.Sleep代码4.makefile编辑5.通过make…...
04 - 尚硅谷 - MQTT 客户端编程
1.在Java中使用MQTT 1.1 Eclipse Paho Java Client 具体步骤: 1、创建一个Spring Boot项目,添加如下依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>…...
C语言基础学习:抽象数据类型(ADT)
基础概念 抽象数据类型(ADT)是一种数据类型,它定义了一组数据以及可以在这组数据上执行的操作,但隐藏了数据的具体存储方式和实现细节。在C语言中,抽象数据类型(ADT)是一种非常重要的概念&…...
蓝桥杯每日真题 - 第16天
题目:(卡牌) 题目描述(13届 C&C B组C题) 解题思路: 题目分析: 有 n 种卡牌,每种卡牌的现有数量为 a[i],所需的最大数量为 b[i],还有 m 张空白卡牌。 每…...
【Docker】快速部署 Pikachu:一个包含常见 Web 安全漏洞的渗透测试练习靶场
系统介绍 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞。 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意。 Pikachu上的漏洞类型列表如下: Burt Force(暴力破解漏洞) XSS…...
【解决】Unity TMPro字体中文显示错误/不全问题
问题描述:字体变成方块 原因:字体资源所承载的长度有限 1.找一个中文字体放入Assets中 2.选中字体创建为TMPro 字体资源 3.选中创建好的字体资源(蓝色的大F) 在右边的属性中找到Atlas Width h和 Atlas Heigth,修改的大一点&…...
速通前端篇 —— CSS
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:速通前端 目录 CSS的介绍 基本语法规范 CSS选择器 标签选择器 class选择器 id选择器 复合选择器 通配符选择器 CSS常见样式 颜…...
【案例】泛微.齐业成助力北京中远大昌汽车实现数电票全流程管理
中远大昌统一发票共享平台上线三个多月以来,实现: 5000份 60000元 发票开具 成本节约 客户简介及需求分析 北京中远大昌汽车服务有限公司(以下简称“中远大昌”)成立于2002年,是中远海运集团所属香远(北…...
Windows系统运行库软件游戏修复工具
本页面下载的资源包包括PC电脑常用的运行库和电脑必备组件,如您的电脑出现应用打不开,缺少dll链接库、闪退等现象可以尝试用下面软件修复。 本资源永久有效。 软件安装基本常识科普: 为什么要安装运行库?运行库默认安装到C盘&…...
解决.DS_Store 在项目一致无法排除,.gitignore里也不生效
.DS_Store 是 macOS 操作系统创建的隐藏文件,通常用于存储目录的属性,比如视图设置、图标位置等。它通常不应包含在代码仓库中,因此需要排除它。你提到即使将其添加到 .gitignore 文件中,仍然无法排除它,可能是由于以下…...
C#里怎么样判断文件是否存在?
C#里怎么样判断文件是否存在? 判断文件是否存在,也是一个常用的功能。 因为文件如果不存,直接去操作,就会抛出异常。 比如要拷贝一个文件到另外一个目录里,如果文件已经存在那个文件夹里,也会抛出异常。 所以提前判断,就可以减少很多不必要的异常抛出,同时程序写得更加…...
汽车免拆诊断案例 | 2012款路虎揽胜运动版柴油车加速无力
故障现象 一辆2012款路虎揽胜运动版车,搭载3.0T柴油发动机(型号为306DT),累计行驶里程约为10.2万km。车主进厂反映,车辆行驶中加速无力,且发动机故障灯异常点亮。 故障诊断 接车后试车,发动…...
JAVA基础
JAVA基础 JAVA的变量 变量是什么 内存中存储的,数值可以改变的数据 定义变量 语法 数据类型 变量名 值; 变量的命名: 必须由字母、数字、下划线和$组成;开头不能是数字规范的命名是小驼峰命令:studentName要做…...
ssh无法连接Ubuntu
试了多次ssh都无法连接,明明可以上网 网卡、防火墙、端口都没有问题,就是连接不上 结果是这个版本Ubuntu镜像默认没有安装ssh服务 安装SSH服务:apt-get install openssh-server 开启SSH服务:/etc/init.d/ssh start 就可以连接…...
spi 回环
///tx 极性0 (sclk信号线空闲时为低电平) /// 相位0 (在sclk信号线第一个跳变沿进行采样) timescale 1ns / 1ps//两个从机 8d01 8d02 module top(input clk ,input rst_n,input [7:0] addr ,input …...
MongoDB 更新集合名
MongoDB 更新集合名 MongoDB 是一个流行的 NoSQL 数据库,它使用集合(collections)来存储文档(documents)。集合在 MongoDB 中相当于关系型数据库中的表。在 MongoDB 中,集合名是可以在某些情况下进行更新的…...
常见面试题----深入源码理解MQ长轮询优化机制
引言 在分布式系统中,消息队列(Message Queue, MQ)扮演着至关重要的角色。MQ不仅实现了应用间的解耦,还提供了异步消息处理、流量削峰等功能。而在MQ的众多特性中,长轮询(Long Polling)机制因其…...
Firewall防火墙配置
文章目录 一、firewalld简介二、firewalld特性三、firewalld相关文件及目录四、firewalld配置五、firewalld配置实例一、firewalld简介 firewalld 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 ipv4, ipv6 防火墙设置以及以太网…...
我做了一份斯坦福CS229吴恩达机器学习笔记
吴恩达教授的机器学习课程,可以说是AI领域的一块金字招牌。这门在斯坦福大学开设的课程,历经十余年,依旧是机器学习入门的经典之作。 记得当年,这门课火爆到吴恩达教授不得不将其搬到线上,结果不仅在斯坦福,…...
TESSY单元测试工具详解与操作演示:ISO 26262合规性、自定义测试用例、详细测试报告等
在嵌入式系统开发中,安全性和可靠性至关重要,尤其是在汽车、医疗和工业控制等高风险行业。为了确保代码在实际运行中满足安全标准,开发者需要一套完善全面的测试工具,来严格检测代码的安全性和可靠性。 TESSY作为一款已获得IEC 61…...
C++语言之函数对象与算法
在 C 中,函数对象(Function Object)也叫仿函数(Functor),是一个类,这个类重载了()运算符。从概念上讲,它的行为类似于一个函数,可以像调用函数一样来调用这个类的对象。 …...
Fakelocation Server服务器/专业版 Windows11
前言:需要Windows11系统 Fakelocation开源文件系统需求 Windows11 | Fakelocation | 任务一 打开 PowerShell(以管理员身份)命令安装 Chocolatey Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProto…...
java使用itext生成pdf
一、利用Adobe Acrobat DC软件创建pdf模板 备好Adobe Acrobat DC软件 1.excel/jpg/png文件转pdf文件 右击打开我们要转换的文件 2.然后点击 添加 域 3.可以看到域的名字 4.调整字体大小/对齐方式等 5.保存 二,代码部分 首先 上依赖 <dependency><group…...
【PPTist】添加PPT模版
前言:这篇文章来探索一下如何应用其他的PPT模版,给一个下拉菜单,列出几个项目中内置的模版 PPT模版数据 (一)增加菜单项 首先在下面这个菜单中增加一个“切换模版”的菜单项,点击之后在弹出框中显示所有的…...
AmazonS3集成minio实现https访问
最近系统全面升级到https,之前AmazonS3大文件分片上传直接使用http://ip:9000访问minio的方式已然行不通,https服务器访问http资源会报Mixed Content混合内容错误。 一般有两种解决方案,一是升级minio服务,配置ssl证书,…...
适配屏幕px、rem单位换算, 将 pxToRem 函数设置为一个全局工具如:在 utils.js 文件、SCSS/Mixin 定义
页面的宽度适配: 假设页面的根元素(html)的字体大小设置为动态值(常用 rem 单位适配时的做法), 比如 html { font-size: (屏幕宽度 / 设计稿宽度) }。如果根元素的字体大小为 1rem 屏幕宽度 / 1920px&…...
H.265流媒体播放器EasyPlayer.js播放器提示MSE不支持H.265解码可能的原因
随着人工智能和机器学习技术的应用,流媒体播放器将变得更加智能,能够根据用户行为和偏好提供个性化的内容推荐。总体而言,流媒体播放器的未来发展将更加注重技术创新和用户互动,以适应不断变化的市场需求和技术进步。 提示MSE不支…...
医学图像语义分割:前列腺肿瘤、颅脑肿瘤、腹部多脏器 MRI、肝脏 CT、3D肝脏、心室
医学图像语义分割:前列腺肿瘤、颅脑肿瘤、腹部多脏器 MRI、肝脏 CT、3D肝脏、心室 语义分割网络FCN:通过将全连接层替换为卷积层并使用反卷积上采样,实现了第一个端到端的像素级分割网络U-Net:采用对称的U形编解码器结构ÿ…...
16. 指针类型和步长概念问题
1. 项目场景: ➣ Jack Qiao对米粒说:“今天有道友遇到一个问题,举个栗子数组 arr[5] { 0 };道友发现&arr[0] 1与&arr 1打印出来的地址竟然不同。”米粒测试后果然是这样。 2. 问题描述 ☑ 举个栗子:数组 arr[5] { 0…...
【电路笔记】-布尔逻辑AND函数
逻辑AND函数 文章目录 逻辑AND函数1、概述2、逻辑 AND 函数 仅当所有输入均为 true 时,逻辑与函数输出才为 true,否则输出为 false。 1、概述 布尔代数基于逻辑函数,其中每个布尔函数(例如逻辑 AND 函数)通常具有一个…...
数据结构C语言描述3(图文结合)--双链表、循环链表、约瑟夫环问题
前言 这个专栏将会用纯C实现常用的数据结构和简单的算法;有C基础即可跟着学习,代码均可运行;准备考研的也可跟着写,个人感觉,如果时间充裕,手写一遍比看书、刷题管用很多,这也是本人采用纯C语言…...
wend看源码-APISJON
项目地址 腾讯APIJSON官方网站 定义 APIJSON 可以定义为一个面向HTTP 协议的JSON 规范,一个面向数据访问层的ORM 框架。其主要工作流程包括:前端按照既定格式组装 JSON 请求报文,通过 APIJSON-ORM 将这些报文直接转换为 SQL 语句,…...
CSS(8):盒子阴影与文字阴影
一:盒子阴影text-shadow属性 1.box-shadow:h-shadow v-shadow blur spread color inset; 默认的是外部阴影outset,不能写在代码上 2.鼠标经过盒子后的阴影 rgba透明度 3.文字阴影 text-shadow:水平偏移 垂直偏移 模糊度 阴影颜色; 注意点…...
Hadoop 系列 MapReduce:Map、Shuffle、Reduce
文章目录 前言MapReduce 基本流程概述MapReduce 三个核心阶段详解Map 阶段工作原理 Shuffle 阶段具体步骤分区(Partition)排序(Sort)分组(Combine 和 Grouping) Reduce 阶段工作原理 MapReduce 应用场景Map…...
web——sqliabs靶场——第十三关——报错注入+布尔盲注
发现是单引号加括号闭合的 尝试联合注入 发现不太行,那尝试报错注入。 测试报错注入 unameadmin) and updatexml(1,0x7e,3) -- &passwdadmin&submitSubmit 爆数据库 unameadmin) and updatexml(1,concat(0x7e,database(),0x7e),3) -- &passwdadmin&a…...
调大Vscode资源管理器字体
对于调整资源管理器字体大小(也就是下图红框),查找了网上很多方法。要么介绍的方法是调整了代码字体,要么是调节了终端字体,要么是通过整体放缩实现的调整,总之都不合适。 唯一的调整方法是在几篇CSDN里看到…...
【新人系列】Python 入门(十一):控制结构
✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们…...
后端开发详细学习框架与路线
🚀 作者 :“码上有前” 🚀 文章简介 :后端开发 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 为帮助你合理安排时间,以下是结合上述学习内容的阶段划分与时间分配建议。时间安排灵活&a…...
类文件结构详解.上
字节码 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题&…...
【K8S问题系列 |18 】如何解决 imagePullSecrets配置正确,但docker pull仍然失败问题
如果 imagePullSecrets 配置正确,但在执行 docker pull 命令时仍然失败,可能存在以下几种原因。以下是详细的排查步骤和解决方案。 1. 检查 Docker 登录凭证 确保你使用的是与 imagePullSecrets 中相同的凭证进行 Docker 登录: 1.1 直接登录…...
Vue+Springboot用Websocket实现协同编辑
1. 项目介绍 在本文中,我们将介绍如何使用Vue.js和Spring Boot实现一个支持多人实时协同编辑的Web应用。通过WebSocket技术,我们可以实现文档的实时同步,让多个用户同时编辑同一份文档。 2. 技术栈 前端:Vue.js 3 Vuex后端&am…...
高阶C语言补充:柔性数组
C99中,结构体中最后一个元素允许时未知大小的数组,这就叫做柔性数组成员。 vs编译器也支持柔性数组。 之所以把柔性数组单独列出,是因为: 1、柔性数组是建立在结构体的基础上的。 2、柔性数组的使用用到了动态内存分配。 这使得柔…...
MYSQL——多表查询、事务和索引
概括 出现查询结果个数为笛卡尔积的原因是sql语句: select * from tb_emp,tb_dept; 没有加上where tb_emp.dept_id tb_dept.id;(where条件可以消除笛卡尔积) select * from tb_emp,tb_dept where tb_emp.dept_id tb_dept.id; 查询类型 …...
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
文章目录 前言摘要描述题解答案题解代码题解代码分析示例测试及结果时间复杂度空间复杂度总结 前言 本题由于没有合适答案为以往遗留问题,最近有时间将以往遗留问题一一完善。 LeetCode - #140 单词拆分 II 不积跬步,无以至千里;不积小流&…...
Unity类银河战士恶魔城学习总结(P132 Merge skill tree with skill Manager 把技能树和冲刺技能相组合)
【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了解锁技能后才可以使用技能,先完成了冲刺技能的锁定解锁 Dash_Skill.cs using System.Collections; using System…...
JavaScript 中 arguments、类数组与数组的深入解析
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 💯前言💯什么是 arguments 对象2.1 arguments 的定义2.2 arguments 的特性2.3 使用场景 💯深入了解 arguments 的结构3.1 arguments 的内部结构arguments 的关键属性…...
【java-Neo4j 5开发入门篇】-最新Java开发Neo4j
系列文章目录 前言 上一篇文章讲解了Neo4j的基本使用,本篇文章对Java操作Neo4j进行入门级别的阐述,方便读者快速上手对Neo4j的开发。 一、开发环境与代码 1.docker 部署Neo4j #这里使用docker部署Neo4j,需要镜像加速的需要自行配置 docker run --name…...