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

【Maven】

Maven

  • Maven简介
      • 仓库
      • 坐标
  • Maven项目构建
  • 依赖管理
  • 生命周期及插件
    • 插件
  • 模块拆分与开发
    • 聚合
    • 继承
    • 属性
  • 版本管理
  • 资源配置
  • 多环境开发配置
  • 跳过测试
  • 私服

Maven简介

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

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

仓库

仓库:用于存储资源,包含各种jar包
仓库分类:

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

坐标

坐标:Maven中的坐标用于描述仓库中资源的位置
坐标地址:https://repo1.maven.org/maven2/
仓库地址:https://mvnrepository.com/

坐标组成:

  • groupId:定义当前Maven项目隶属组织名称
  • aritfactId:定义当前Maven项目名称
  • version:定义当前项目版本号
  • packaging:定义改项目的打包方式

Maven坐标的作用:
使用唯一标识,唯一性定位资源位置,通过该标识可以将资源的识别与下载工作交互由机器完成。

本地仓库位置:
默认位置:登录用户名所在目录下的.m2文件夹中

<localRepository>${user.home}/.m2/repository</localRepository>

自定义位置:

<localRepository>D:\maven\repository</localRepository>

默认仓库位置:

<repositories><repository><id>central</id><name>Central Repository</name><url>https://repo.maven.apache.org/maven2</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots></repository>
</repositories>

在seting文件中配置阿里云镜像仓库

<mirrors><!--配置具体的仓库的下载镜像--><mirror><!-- 此镜像的唯一标识符,用来区分不同的mirror元素 --><id>nexus-aliyun</id><!-- 对哪种仓库进行镜像,简单说就是替代哪个仓库 --><mirrorOf>central</mirrorOf><!-- 镜像名称 --><name>Nexus aliyun</name><!-- 镜像URL --><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror>
</mirrors>

Maven项目构建

Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔。

命令释义
mvn complie编译
mvn clean清理
mvn test测试
mvn package打包
mvn install安装到本地仓库

1.项目编写成功后,执行mvn install命令
在这里插入图片描述
2.执行mvn test命令,先编译,后测试,保存测试结果
在这里插入图片描述
在这里插入图片描述
3.执行mvn package命令
在这里插入图片描述
先执行编译,测试后编译,再test,最后执行打包指令
在这里插入图片描述
在这里插入图片描述
4.执行mvn install命令,执行编译,测试,打包,最后将jar包安装到本地仓库
在这里插入图片描述
maven命令创建工程:

mvn archetype:generate-DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-quickstart-DinteractiveMode=false

创建java工程

mvn archetype:generate -DgroupId=com.itheima -DartifactId=java-project -
DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -
DinteractiveMode=false

创建web工程

mvn archetype:generate -DgroupId=com.itheima -DartifactId=web-project -
DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -
DinteractiveMode=false

maven配置Tomcat7运行插件:

<build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port> 端口<path>/</path>  路径</configuration></plugin></plugins>
</build>

添加maven运行配置,可以debug运行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

依赖管理

依赖指当前项目运行所需的jar,一个项目可以设置多个依赖。

依赖配置:

<!-- 设置当前项目所依赖的所有jar-->
<dependencies><!— 设置具体的依赖--><dependency><!— 依赖所属群组id--><groupId>junit</groupId><!— 依赖所属项目id--><artifactId>junit</artifactId><!— 依赖版本号 --><version>4.12</version></dependency>
</dependencies>

依赖传递(相对概念):

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

在这里插入图片描述
依赖传递冲突问题:

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

在这里插入图片描述
在这里插入图片描述
可选依赖:对外隐藏当前所依赖的资源,不透明,通过设置

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><optional>true</optional>
</dependency>

排除依赖:主动断开依赖的资源,被排除的资源无需指定版本,通过设置
在这里插入图片描述

<dependency><groupId>com.heima</groupId><artifactId>project03</artifactId><version>1.0.-SNAPSHOT</version><exclusions><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions>
</dependency>

依赖范围: 依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
作用范围:

  • 主程序范围有效(main文件夹范围内)
  • 测试程序范围有效(test文件夹范围内)
  • 是否参与打包(package指令范围内)
scope主程序测试代码打包范例
comile(默认)YYYlog4j
testYjunit
providedYYservlet-api
runtimeYjdbc

依赖范围传递性
带有依赖范围的资源在进行传递时,作用范围将收到影响
在这里插入图片描述

生命周期及插件

maven构建生命周期描述的是一次构建过程经历了多少个事件。

maven对项目构建的生命周期划分为3套:

  • clean:清理工作
  • default:核心工作,例如编译,测试,打包,部署等
  • site:产生报告,发布站点

clean生命周期

  • pre-clean:执行一些需要再clean之前完成的工作
  • clean:移除所有上次构建生成的文件
  • post-clean:执行一些需要再clean之后立刻完成的工作
  • default构建生命周期

default构建生命周期
在这里插入图片描述
site构建生命周期

  • pre-site:执行一些需要在生成站点文档之前完成的工作
  • site:生成项目的站点文档
  • post-site:执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
  • site-deploy:将生成的站点文档部署到特定的服务器上

插件

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

定义哪个生命周期执行哪个插件

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><goals><goal>jar</goal> #对源码打包</goals><phase>generate-test-resources</phase> #插件执行时期</execution></executions></plugin></plugins>
</build>

模块拆分与开发

聚合

聚合:聚合用于快速构建maven工程,一次性构建多个项目/模块。
在这里插入图片描述
创建一个空模块,打包类型定义为pom

<packaging>pom</packaging>

定义当前模块进行构建时关联的其他模块名称

<modules><module>../ssm_controller</module><module>../ssm_service</module><module>../ssm_dao</module><module>../ssm_pojo</module>
</modules>

在这里插入图片描述

继承

通过继承可以实现在子工程中沿用父工程中的配置,避免子工程中依赖版本冲突。
在子工程中声明其父工程坐标与对应的位置。
在这里插入图片描述
1.父工程编写:

<!--1.在父工程中定义依赖管理 -->
<dependencyManagement><!-- 具体的依赖 --><dependencies><!--spring 环境--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><!--版本--><version>5.1.9.RELEASE</version></dependency><!--也可以添加自己的工程模块依赖--><!--...--><dependencies>
<dependencyManagement><!--插件管理类似--><build><pluginManagement><!--设置插件--><plugins><!--具体的插件配置--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></pluginManagement></build>

2.在子工程中定义依赖关系,无需声明依赖版本,版本参照父工程中依赖的版本

<!--1.在子工程中声明其父工程坐标与其对应的位置 -->
<parent><groupId>com.itheima</groupId><artifactId>ssm</artifactId><version>1.0-SNAPSHOT</version><!-- 填写父工程的pom文件相对路径 --><relativePath>../ssm/pom.xml</relativePath>
</parent>
<!--版本 -->
<modelVersion>4.0.0</modelVersion>
<!--项目名称,打包方式 -->
<!--<groupId>com.itheima</groupId>与父版本保持一致 -->
<artifactId>ssm_pojo</artifactId>
<packaging>jar</packaging><!--2.在子工程中定义依赖关系,无需声明版本 -->
<dependencies><!--spring环境 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency>
</dependencies><build><!--设置插件--><plugins><!--具体的插件配置--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId></plugin></plugins>
</build>

继承的资源
在这里插入图片描述
继承与聚合:

  • 作用
    • 聚合用于快速构建项目
    • 继承用于快速配置
  • 相同点
    • 聚合与继承的pom.xml 文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
    • 聚合与继承均属于设计型模块,并无实际的模块内容
  • 不同点
    • 聚合是当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
    • 继承是子模块中配置关系,父模块无法感知哪些子模块继承了自己

属性

自定义属性: 等同于定义变量,方便统一维护。
定义自定义属性:

<properties><spring.version>5.1.9.RELEASE</spring.version><junit.version>4.12</junit.version>
</properties>

调用:

<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version>
</dependency>
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version>
</dependency>

内置属性: 使用maven内置属性,快速配置

${basedir}
${version}

调用:

 	<groupId>com.itheima</groupId><artifactId>ssm</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><!--声明此处进行依赖管理--><dependencyManagement><!--具体的依赖--><dependencies><!--添加自己的工程模块依赖--><dependency><groupId>com.itheima</groupId><artifactId>ssm_pojo</artifactId><version>${version}</version></dependency></dependencies></dependencyManagement>

Setting属性: 使用Maven配置文件setting.xml中的标签属性,用于动态配置
调用格式:

${settings.localRepository}

Java系统属性: 读取Java系统属性
调用格式:

${user.home}

系统属性查询方式:mvn help:system
在这里插入图片描述
在这里插入图片描述
环境变量属性: 读取环境变量属性
调用格式:

${env.JAVA_HOME}

版本管理

  • SNAPSHOT快照版本
    • 项目开发过程中,为方便团队成员合作,解决模块间相互依赖和时时更新的问题,开发者堆每个模块进行构建的时候,输出的临时版本叫做快照版本(测试阶段版本)
    • 快照版本会随着开发的进展不断更新
  • RELEASE发布版本SNAPSHOT快照版本
    • 项目开发到进入阶段里程碑后,向团队外部发布较为稳定的版本,这种版本所对应的构建文件是稳定的,即便进行后续的功能开发,也不会改变当前发布版本内容,这种版本为发布版本。

工程版本号约定

  • <主版本>.<次版本>.<增量版本>.<里程碑版本>
  • 主版本:表示项目重大架构的变更,如spring5相较于spring4的变更
  • 次版本:表示有较大的功能增加和变化,或者全面系统地修复漏洞
  • 增量版本:表示有重大漏洞的修复
  • 里程碑版本:表明一个版本的里程碑(版本内部)。这样的版本同下一个正式版本相比,相对来说不是很稳定,有待更多的测试。

资源配置

定义资源文件引用pom属性,集中统一管理

1.pom.xml文件修改,设置文件路径

<!--1.定义变量-->
<properties><jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url>
</properties>
<build>
<!--2.配置资源文件对应的信息,支持使用属性动态设定路径,开启加载pom属性过滤功能--><!--配置资源文件对应的信息 ${project.basedir}项目基础路径--><resources><resource><directory>${project.basedir}/src/main/resources</directory><filtering>true</filtering></resource></resources><!--配置测试资源文件对应的信息--><testResources><testResource><directory>${project.basedir}/src/test/resources</directory><filtering>true</filtering></testResource></testResources>
</build>

2.资源文件修改,使用${属性名}引用pom属性

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=${jdbc.url}
jdbc.username=root
jdbc.password=itheima

多环境开发配置

在这里插入图片描述
1.定义多环境

<!--创建多环境--><profiles><!--定义具体的环境:生产环境--><profile><!--定义环境对应的唯一名称--><id>pro_env</id><!--定义环境中换用的属性值--><properties><jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url></properties><!--设置默认启动--><activation><activeByDefault>true</activeByDefault></activation></profile><!--定义具体的环境:开发环境--><profile><id>dep_env</id><properties><jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url></properties></profile></profiles>

2.使用多环境,配置打包使用哪个环境
在这里插入图片描述

跳过测试

跳过测试环节的应用场景:

  • 整体模块功能未开发
  • 模块中某个功能未开发完毕
  • 单个功能更新调试导致其他功能失败
  • 快速打包

跳过测试:

  • 命令行:执行的指令生命周期必须包含测试环节
mvn 指令 –D skipTests
mvn install –D skipTests跳过一些测试
mvn clean install -DskipTests=MyTest1,MyTest2指定执行某些测试
mvn test -Dtest=MyTest1,MyTest2
  • idea界面跳过
    在这里插入图片描述

  • pom.xml配置

<plugin><!--可省略--><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version><configuration><skipTests>true</skipTests><!--设置跳过测试--><includes> <!--包含指定的测试用例 --><include>**/User*Test.java</include></includes><!--<excludes><!--排除测试用例 --><exclude>**/User*TestCase.java</exclude></excludes>--></configuration>
</plugin>

私服

Nexus是Sonatype公司的一款maven私服产品。
下载地址:https://help.sonatype.com/repomanager3/download
下载解压后目录:
在这里插入图片描述
在bin目录中输入:nexus /run nexus启动:
在这里插入图片描述
访问默认端口:8081,http://localhost:8081
在这里插入图片描述

仓库分类:

  • 宿主仓库hosted:保存无法从中央仓库获取的资源,按需存放资源的仓库(以上线/开发中)
    • 自主研发的资源
    • 第三方非开源项目,比如oracle-jdbc
  • 代理仓库proxy
    • 代理远程仓库,通过nexus访问其他公共仓库,例如中央仓库,阿里云仓库
  • 仓库组group
  • 将若干个仓库组成一个群组(可以是宿主仓库,也可以是代理仓库),简化配置
  • 仓库组不能保存资源,属于设计型仓库,便于取资源

进入页面,提示默认密码位置,之后修改密码
在这里插入图片描述
进入首页:
在这里插入图片描述
创建仓库:
在这里插入图片描述
选择类型:
在这里插入图片描述
在这里插入图片描述
添加到public群组中
在这里插入图片描述
上传组件
在这里插入图片描述
在这里插入图片描述
RELEASE版本SNAPSHOT版本,会做一个版本校验,需要统一
在这里插入图片描述
查看:
在这里插入图片描述
Idea环境中资源上传和下载:
在这里插入图片描述

setting.xml配置本地仓库访问私服的权限(下载地址)

<servers><server><id>heima-release</id><username>admin</username><password>admin</password></server><server><id>heima-snapshots</id><username>admin</username><password>admin</password></server>
</servers>

setting.xml配置本地仓库来源为私服

<mirrors><mirror><id>nexus-heima</id><mirrorOf>*</mirrorOf><url>http://localhost:8081/repository/maven-public/</url></mirror>
</mirrors>

配置当前项目访问私服上传资源的保存位置(pom.xml文件)

<distributionManagement><repository><id>heima-release</id><url>http://localhost:8081/repository/heima-release/</url></repository><snapshotRepository><id>heima-snapshots</id><url>http://localhost:8081/repository/heima-snapshots/</url></snapshotRepository>
</distributionManagement>

发布资源到私服命令

mvn deploy

相关文章:

【Maven】

MavenMaven简介仓库坐标Maven项目构建依赖管理生命周期及插件插件模块拆分与开发聚合继承属性版本管理资源配置多环境开发配置跳过测试私服Maven简介 Maven的本质时一个项目管理工具&#xff0c;将项目开发和管理过程抽象成一个项目对象模型(POM) POM(Project Object Model)&a…...

[JAVA]继承

目录 1.继承的概念 2.继承的语法 3.父类成员访问 3.1子类中访问父类成员变量 3.2子类中访问父类成员方法 4.super关键字 5.子类构造方法 6.继承方式 7.final关键字和类的关系 面向对象思想中提出了继承的概念&#xff0c;专门用来进行共性抽取&#xff0c;实现代码复…...

Vue3 pinia持久化存储(组合式Api案例演示)

pinia-plugin-persist&#xff08; pinia持久化插件&#xff09; 本文采用的是 组合式Api的方式来做Pinia的持久化存储演示 如果对pinia的持久化还是不是很了解的&#x1f468;‍&#x1f393;&#xff5c;&#x1f469;‍&#x1f393;&#xff0c;可以看一下笔者的上一篇文章…...

8个你一看就觉得很棒的Vue开发技巧

1.路由参数解耦 通常在组件中使用路由参数&#xff0c;大多数人会做以下事情。 export default {methods: {getParamsId() {return this.$route.params.id}} }在组件中使用 $route 会导致与其相应路由的高度耦合&#xff0c;通过将其限制为某些 URL 来限制组件的灵活性。 正…...

vue3+ts 开发效率提升

1、vite pnpm项目初始化 pnpm&#xff1a; 比npm或yarn快10倍 pnpm与其他包管理器&#xff08;如npm和Yarn&#xff09;的不同之处在于它使用一种称为“硬链接”的独特安装方法。当你使用PNPM安装一个包时&#xff0c;它并不会将包的文件复制到每个项目的node_modules目录中&a…...

【数据结构与算法】队列和栈的相互实现以及循环队列

目录&#x1f314;一.用队列实现栈&#x1f319;1.题目描述&#x1f319;2.思路分析&#x1f319;3.代码实现⛈二.用栈实现队列☔1.题目描述☔2.思路分析☔3.代码实现&#x1f308;三.实现循环队列&#x1f314;一.用队列实现栈 &#x1f319;1.题目描述 我们先看一下题目链接…...

mysql连接不上问题解决

公司新搭内网测试环境&#xff0c;mysql远程登录问题解决 远程登录: 1 修改host, mysql> select user,host,plugin from user; ---------------------------------------------------- | user | host | plugin | ------------------------…...

利用nginx实现动静分离的负载均衡集群实战

前言 大家好&#xff0c;我是沐风晓月&#xff0c;今天我们利用nginx来作为负载&#xff0c;实现两台apache服务器的动静分离集群实战&#xff1b; 本文收录于沐风晓月的专栏《linux基本功-系统服务实战》&#xff0c;更多内容可以关注我的博客&#xff1a; https://blog.csd…...

与chatGPT神聊,引领你深入浅出系统调用

在操作系统的教学中&#xff0c;系统调用的作用不言而喻&#xff0c;但是&#xff0c;对系统调用常常是雾里看花&#xff0c;似乎明白&#xff0c;又难以真正的触及&#xff0c;即使在代码中调用了系统调用&#xff0c;比如调用fork&#xff08;&#xff09;创建进程&#xff0…...

自学大数据第十天~Hbase

随着数据量的增多,数据的类型也不像原来那样都是结构化数据,还有非结构化数据; Hbase时google 的bigtable的开源实现, BigtableHbase文件存储系统GFSHDFS海量数据处理MRMR协同管理服务chubbyzookeeper虽然有了HDFS和MR,但是对于数据的实时处理是比较困难的,没有办法应对数据的…...

vue更高效的工具-vite

目录 1.webpack 2.vite是什么 3.使用vite创建项目 4.最后总结 &#x1f43c;webpack 简单来说&#xff0c;Webpack是一个打包工具。 站在2018年的角度&#xff0c;成为一个优秀的前端工程师&#xff0c;除了要会写页面样式和动态效果之外&#xff0c;还需要会用主流的单页…...

HFish蜜罐的介绍和简单测试(一)

目录 0、什么是蜜罐 0.1、蜜罐的定义 0.2、蜜罐的优势 0.3、蜜罐与情报 1、HFish介绍 1.1、设计理念 1.2、HFish架构 1.3、HFish特点 1.4、常见蜜罐场景 2、快速部署 2.1、环境要求 2.2、联网环境&#xff0c;一键安装 2.3、安装效果 3、错误排查 3.1、管理端问题…...

2023面试题汇总二

一、CSS面试题 1. 清除浮动的方式有哪些&#xff1f; 为什么要清除浮动&#xff1f;因为浮动的盒子脱离标准流&#xff0c;如果父盒子没有设置高度的话&#xff0c;下面的盒子就会撑上来。 额外标签法(在最后一个浮动标签后&#xff0c;新加一个标签&#xff0c;给其设置cle…...

C# 支付宝接口在线收款退款

收款 在C#中使用支付宝在线支付功能&#xff0c;需要使用支付宝开放平台提供的SDK&#xff08;软件开发工具包&#xff09;&#xff0c;通过SDK中提供的API&#xff08;应用程序接口&#xff09;实现在线支付功能。 以下是使用C#实现支付宝在线支付的大致步骤&#xff1a; 获…...

python例程:《企业编码生成系统》程序

目录《企业编码生成系统》程序使用说明主要代码演示源码及说明文档下载路径《企业编码生成系统》程序使用说明 在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时&#xff0c;只需…...

基于EB工具的TC3xx_MCAL配置开发04_ADC模块软件触发Demo配置

目录 1.概述2. EB配置2.1 添加HwUnit2.2 AdcPrescale配置2.3 添加ADC通道2.4 添加Adc Group2.5 Adc Group配置2.5.1 AdcGroup->General2.5.2 AdcGroup->AdcNotification2.5.3 AdcGroup->AdcGroupDefinition2.5.4 AdcGroup->AdcResRegDefinition2.6 中断配置1.概述 …...

内存操作函数

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨未来…...

免费搭建个人博客

免费搭建个人博客,并发布到公网 利用hexo搭建个人博客&#xff0c;通过gitee的pages发布到公网 1 前置准备 安装git、安装node.js&#xff08;尽量选择长期支持的版本) node.js官网&#xff1a;https://nodejs.org/en/ git官网&#xff1a;https://git-scm.com/book/zh/v2 安装…...

【Vue全家桶】详解Vue Router(一)

【Vue全家桶】Vue Router详解&#xff08;一&#xff09; Vue系列文章目录&#xff1a; 内容参考链接Vue&#xff08;一&#xff09;【Vue全家桶】邂逅Vue、Vue的多种引入方式Vue&#xff08;二&#xff09;【Vue全家桶】声明式编程、MVVMVue&#xff08;三&#xff09;【Vue…...

9大 HIVE SQL 最频繁被问到的面试题

SQL是用于数据分析和数据处理的最重要的编程语言之一&#xff0c;因此与数据科学相关的工作&#xff08;例如数据分析师、数据科学家和数据工程师&#xff09;在面试时总会问到关于 SQL 的问题。 SQL面试问题旨在评估应聘者的技术和解决问题的能力。因此对于应聘者来说&#x…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...