学习大数据,所需要的java(Maven)基础(1)

文章目录

  • 使用Maven的优势
    • 第三方jar包添加
    • 第三方jar包获取
    • jar包之间的依赖关系
    • jar包之间的冲突处理
    • 将项目拆分成多个工程模块
  • 实现项目的分布式部署
  • Maven是什么
    • 自动化构建工具
    • 构建的概念
    • 构建环节
    • 自动化构建
  • Maven如何使用
    • 安装Maven核心程序
    • maven联网问题
    • Maven中的settings配置
    • 在idea中配置Maven
    • Maven打包插件
  • Maven核心概念
    • POM
    • 约定的目录结构
    • 坐标
    • 第二个Maven工程
    • 依赖管理
    • 依赖的范围
    • 依赖的传递性
    • 依赖的原则,解决jar包冲突
    • 依赖的排除

使用Maven的优势

maven是干什么用,的我们先通过企业开发中的时间需求来看一看那些方面是我们技术不足。

第三方jar包添加

java项目,每个项目需要复制一份jar包,Maven后只在本地仓库中保存一份
在这里插入图片描述

第三方jar包获取

java项目,自己去网上找jar包,费劲心血找的jar包里面有的时候并没有你需要的哪个类。
Maven就会自动从仓库进行下载,并同时下载这个jar包所依赖的其他jar包,规范,完整,准确
在这里插入图片描述
JavaEE开发中需要使用到的jar包种类繁多,几乎每个jar包在其本身的官网上的获取方式都不尽相同。为了查找一个jar包找遍互联网,身心俱疲,没有经历过的人或许体会不到这种折磨。不仅如此,费劲心血找的jar包里有的时候并没有你需要的那个类,又或者有同名的类没有你要的方法——以不规范的方式获取的jar包也往往是不规范的。
使用Maven我们可以享受到一个完全统一规范的jar包管理体系。你只需要在你的项目中以坐标的方式依赖一个jar包,Maven就会自动从中央仓库进行下载,并同时下载这个jar包所依赖的其他jar包——规范、完整、准确!一次性解决所有问题!

jar包之间的依赖关系

java项目,自己去网上找jar包,同时找到所有依赖关系的jatr包
Maven会自动从仓库进行下载,下载这个jar包所依赖的其他jar包
在这里插入图片描述
jar包往往不是孤立存在的,很多jar包都需要在其他jar包的支持下才能够正常工作,我们称之为jar包之间的依赖关系。最典型的例子是:commons-fileupload-1.3.jar依赖于commons-io-2.0.1.jar,如果没有IO包,FileUpload包就不能正常工作。
那么问题来了,你知道你所使用的所有jar包的依赖关系吗?当你拿到一个新的从未使用过的jar包,你如何得知他需要哪些jar包的支持呢?如果不了解这个情况,导入的jar包不够,那么现有的程序将不能正常工作。再进一步,当你的项目中需要用到上百个jar包时,你还会人为的,手工的逐一确认它们依赖的其他jar包吗?这简直是不可想象的。
而引入Maven后,Maven就可以替我们自动的将当前jar包所依赖的其他所有jar包全部导入进来,无需人工参与,节约了我们大量的时间和精力。用实际例子来说明就是:通过Maven导入commons-fileupload-1.3.jar后,commons-io-2.0.1.jar会被自动导入,程序员不必了解这个依赖关系。

jar包之间的冲突处理

上一点说的是jar包不足,项目无法正常工作,但其实有的时候jar包多了项目仍然无法正常工作,这就是jar包之间的冲突
举个例子:我们现在有三个工程MakeFriend、HelloFriend和Hello。MakeFriend依赖HelloFriend,HelloFriend依赖Hello。而Hello依赖log4j.1.2.17.jar,HelloFriend依赖log4j.1.2.14.jar。如下图所示:

在这里插入图片描述
那么MakeFriend工程的运行时环境中该导入log4j.1.2.14.jar呢还是log4j.1.2.17.jar呢?
这样的问题一个两个还可以手工解决,但如果系统中存在几十上百的jar包,他们之间的依赖关系会非常复杂,几乎不可能手工实现依赖关系的梳理。
使用Maven就可以自动的处理jar包之间的冲突问题。因为Maven中内置了两条依赖原则:最短路径者优先和先声明者优先,上述问题MakeFriend工程会自动使用log4j.1.2.14.jar。

将项目拆分成多个工程模块

随着JavaEE项目的规模越来越庞大,开发团队的规模也与日俱增。一个项目上千人的团队持续开发很多年对于JavaEE项目来说再正常不过。那么我们想象一下:几百上千的人开发的项目是同一个Web工程。那么架构师、项目经理该如何划分项目的模块、如何分工呢?这么大的项目已经不可能通过package结构来划分模块,必须将项目拆分成多个工程协同开发。多个模块工程中有的是Java工程,有的是Web工程。
那么工程拆分后又如何进行互相调用和访问呢?这就需要用到Maven的依赖管理机制。例如:某项目拆分的情况如下。
在这里插入图片描述
上层模块依赖下层,所以下层模块中定义的API都可以为所调用和访问

实现项目的分布式部署

在实际开发环境中,项目规模增加到一定的程度后,可能每个模块都需要运行在独立的服务器上,我们称之为分布式部署,这里同样需要用到Maven
在这里插入图片描述

Maven是什么

如果上面的描述能够是你认识到使用Maven是多么的重要,我们下面就来介绍一下Maven是什么

自动化构建工具

(1)Maven这个单词的本意是:专家,内行。读音是['meɪv(ə)n]或['mevn],不要读作“妈文”。
(2)Maven是一款自动化构建工具,专注服务于Java平台的项目构建和依赖管理。在JavaEE开发的历史上构建工具的发展也经历了一系列的演化和变迁:Make→Ant→Maven→Gradle→其他……

构建的概念

构建并不是创建,创建一个工程并不等于构建一个项目,要了解构建的含义我们应该由浅入深的从以下三个层面来看
(1)纯java代码
大家都知道,我们Java是一门编译型语言,.java扩展名的源文件需要编译成.class扩展名的字节码文件才能够执行。所以编写任何Java代码想要执行的话就必须经过编译得到对应的.class文件。
(2)Web工程
当我们需要通过浏览器访问Java程序时就必须将包含Java程序的Web工程编译的结果“拿”到服务器上的指定目录下,并启动服务器才行。这个“拿”的过程我们叫部署。
我们可以将未编译的Web工程比喻为一只生的鸡,编译好的Web工程是一只煮熟的鸡,编译部署的过程就是将鸡炖熟。
Web工程和其编译结果的目录结构对比见下图:
在这里插入图片描述
(3)实际项目
在实际项目中整合第三方框架,Web工程中除了Java程序和JSP页面、图片等静态资源之外,还包括第三方框架的jar包以及各种各样的配置文件。所有这些资源都必须按照正确的目录结构部署到服务器上,项目才可以运行。
所以综上所述:构建就是以我们编写的Java代码、框架配置文件、国际化等其他资源文件、JSP页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。
那么项目构建的全过程中都包含哪些环节呢?

构建环节

(1)清理:删除以前的编译结果,为重新编译做好准备。
(2)编译:将Java源程序编译为字节码文件。
(3)测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
(4)报告:在每一次测试后以标准的格式记录和展示测试结果。
(5)打包:将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java工程对应jar包,Web工程对应war包。
(6)安装:在Maven环境下特指将打包的结果——jar包或war包安装到本地仓库中。
(7)部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行。

自动化构建

其实上述环节我们在IDEA中都可以找到对应的操作,只是不太标准。那么既然IDE已经可以进行构建了我们为什么还要使用Maven这样的构建工具呢?我们来看一个小故事:

这是阳光明媚的一天。托马斯向往常一样早早的来到了公司,冲好一杯咖啡,进入了自己的邮箱——很不幸,QA小组发来了一封邮件,
报告了他昨天提交的模块的测试结果——有BUG。“好吧,反正也不是第一次”,托马斯摇摇头,进入IDE,运行自己的程序,编译、打包、
部署到服务器上,然后按照邮件中的操作路径进行测试。“嗯,没错,这个地方确实有问题”,托马斯说道。于是托马斯开始尝试修复这个BUG
,当他差不多有眉目的时候已经到了午饭时间。
下午继续工作。BUG很快被修正了,接着托马斯对模块重新进行了编译、打包、部署,测试之后确认没有问题了,回复了QA小组的邮件。一天就这样过去了,明媚的阳光化作了美丽的晚霞,托马斯却觉得生活并不像晚霞那样美好啊。

梳理以下托马斯一天中的工作内容
在这里插入图片描述
从中我们发现,托马斯的很大一部分时间花在了“编译、打包、部署、测试”这些程式化的工作上面,而真正需要由人的智慧实现的分析问题和编译却只占了很少一部分
在这里插入图片描述
能否将这些程式化的工作交给机器自动完成那?当然可以 这就是自动化构建
在这里插入图片描述
那么Maven又是如何实现自动化的构建的那?简单的说来就是他可以自动地从构建过程的起点一直执行到终点
在这里插入图片描述

Maven如何使用

在这一节中,我们来看看Maven核心程序的安装和本地仓库的必要设置。然后我们就可以编写第一个Maven程序了

安装Maven核心程序

1)检查JAVA_HOME环境变量。Maven是使用Java开发的,所以必须知道当前系统环境中JDK的安装目录。
2)解压Maven的核心程序。将apache-maven-3.5.4-bin.zip解压到一个非中文无空格的目录下。例如
D:\develop\Maven\apache-maven-3.5.4
3)配置环境变量。
在这里插入图片描述
(1)在系统变量里面创建MAVEN_HOME变量,并赋值
变量:MAVEN_HOME
值:D:\develop\Maven\apache-maven-3.5.4
(2)在Path变量中,添加maven环境变量
变量:Path
值:%MAVEN_HOME%\bin或D:\develop\Maven\apache-maven-3.5.4\bin
4)查看Maven版本信息验证安装是否正确
(1)按Win +r,进入电脑运行模式;
(2)在打开里面输入:cmd
在这里插入图片描述
(3)在管理员窗口输入
mvn -v
在这里插入图片描述

maven联网问题

在这里插入图片描述

Maven中的settings配置

(1)Maven默认的本地仓库:~.m2\repository目录。
说明:~表示当前用户的家目录。

(2)Maven的核心配置文件位置:
解压目录D:\develop\Maven\apache-maven-3.5.4\conf\settings.xml
打开设置文件,我们需要手动配置几个设置

首先修改默认仓库的位置

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

配置镜像

<mirrors><!-- mirror| Specifies a repository mirror site to use instead of a given repository. The repository that| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.|--><mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url></mirror></mirrors>

设置maven编译版本

  <profiles><profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties></profile></profiles>

在idea中配置Maven

首先我们先创建一个新项目
在这里插入图片描述
创建空白项目
在这里插入图片描述
项目创建完毕后,就可以配置Maven的设置
在这里插入图片描述
对三个位置进行修改
在这里插入图片描述
在maven的importing设置下修改
在这里插入图片描述

设置完成后就可新建一个maven模块
在这里插入图片描述
选择maven
在这里插入图片描述配置设置
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
配置maven的核心配置文件pom.xml
添加代码块

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.atguigu.maven</groupId><artifactId>Hello</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>

使用maven的方式运行maven工程
在这里插入图片描述
来到bigdata的根目录
(1)compile命令,编译主程序
(2)clean 清理编译的程序
(3)test 编译测试程序,并且运行
(4)package打包,工程需要发到服务器上运行时
在这里插入图片描述
发现打了jar包
(5)将jar包安装到本地仓库,注意是根据我们建立maven时项目名,模块名版本的路径去寻找

Maven打包插件

maven本身的打包插件不负责将依赖的jar包一并打入到jar包,如果项目所依赖的jar包在服务器环境中提供了则可以使用,如果服务其中,没用提供相关的类则会无法查找
因此需要一款能够将项目依赖的jar包一并打入到jar中的插件来解决这些问题
可以在pom中添加如下内容

<build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins>
</build>

Maven核心概念

Maven的核心概念包括:POM约定的目录结构、坐标、依赖、仓库、生命周期、插件和目录、继承、聚合

POM

Project Object Model:项目对象模型。将Java工程的相关信息封装为对象作为便于操作和管理的模型。Maven工程的核心配置。可以说学习Maven就是学习pom.xml文件中的配置。

约定的目录结构

现在JavaEE开发领域普遍认同一个观点:约定>配置>编码。意思就是能用配置解决的问题就不编码,能基于约定的就不进行配置。而Maven正是因为指定了特定文件保存的目录才能够对我们的Java工程进行自动化构建。
标准的maven结构
在这里插入图片描述

坐标

1)几何中的坐标
(1)在一个平面中使用x、y两个向量可以唯一的确定平面中的一个点。
(2)在空间中使用x、y、z三个向量可以唯一的确定空间中的一个点。
2)Maven的坐标
使用如下三个向量在Maven的仓库中唯一的确定一个Maven工程。
(1)groupId:公司或组织的域名倒序+当前项目名称
(2)artifactId:当前项目的模块名称
(3)version:当前模块的版本
在项目的pom.xml文件中存储坐标
在这里插入图片描述
如何通过坐标到仓库中查找jar包
将三个坐标给连起来,在本地仓库中查找,这就是我们jar包的位置
在这里插入图片描述注意:我们自己的Maven工程必须执行安装操作才会进入仓库。安装的命令是:mvn install

第二个Maven工程

方法和上面等同,三个坐标为
在这里插入图片描述
在pom.xml中配置文件中当前工程依赖的hello和junit
在这里插入图片描述
在main的java下创建主程序
在这里插入图片描述
创建测试程序
在这里插入图片描述
关键,对hello的依赖
这里的hello就是我们的第一个maven工程,现在hellofrind对他有依赖,那么这个依赖能否能成功,更进一步的问题是:HelloFriend工程会到哪里去找Hello呢?
答案是:本地仓库。任何一个Maven工程会根据坐标到本地仓库中去查找它所依赖的jar包。如果能够找到则可以正常工作,否则就不行

依赖管理

1.基本概念
当A jar包需要用到B jar包中的类时,我们就说A对B有依赖。例如:HelloFriend-1.0-SNAPSHOT.jar依赖于Hello-1.0-SNAPSHOT.jar。
通过第二个Maven工程我们已经看到,当前工程会到本地仓库中根据坐标查找它所依赖的jar包。
配置的基本形式是使用dependency标签指定目标jar包的坐标。例如:
在这里插入图片描述

2)直接依赖和间接依赖
如果A依赖B,B依赖C,那么A→B和B→C都是直接依赖,而A→C是间接依赖

依赖的范围

1)compile(默认就是这个范围)
(1)main目录下的Java代码可以访问这个范围的依赖
(2)test目录下的Java代码可以访问这个范围的依赖
(3)部署到Tomcat服务器上运行时要放在WEB-INF的lib目录下
例如:对Hello的依赖。主程序、测试程序和服务器运行时都需要用到。
2)test
(1)main目录下的Java代码不能访问这个范围的依赖
(2)test目录下的Java代码可以访问这个范围的依赖
(3)部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下
例如:对junit的依赖。仅仅是测试程序部分需要。
3)provided
(1)main目录下的Java代码可以访问这个范围的依赖
(2)test目录下的Java代码可以访问这个范围的依赖
(3)部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下
例如:servlet-api在服务器上运行时,Servlet容器会提供相关API,所以部署的时候不需要。
4)其他:runtime、import、system等。
各个依赖范围的作用可以概括为下图:
在这里插入图片描述

依赖的传递性

当存在间接依赖的情况时,主工程对间接依赖的jar可以访问吗?这要看间接依赖的jar包引入时的依赖范围——只有依赖范围为compile时可以访问。例如:
在这里插入图片描述

依赖的原则,解决jar包冲突

1)路径最短者优先
在这里插入图片描述
2)路径相同时先声明者优先
在这里插入图片描述
这里“声明”的先后顺序指的是dependency标签配置的先后顺序。

依赖的排除

有的时候为了确保程序正确可以将有可能重复的间接依赖排除。请看如下的例子:
(1)假设当前工程为MakeFriend,直接依赖OurFriends。
(2)OurFriends依赖commons-logging的1.1.1对于MakeFriend来说是间接依赖。
(3)当前工程MakeFriend直接依赖commons-logging的1.1.2。
(4)加入exclusions配置后可以在依赖OurFriends的时候排除版本为1.1.1的commons-logging的间接依赖。

<dependency><groupId>com.atguigu.maven</groupId><artifactId>OurFriends</artifactId><version>1.0-SNAPSHOT</version><!--依赖排除--><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions>
</dependency><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.2</version>
</dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/305584.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytorch实现胶囊网络(capsulenet)

胶囊网络在hinton刚提出来的时候小热过一段时间&#xff0c;之后热度并没有维持多久。vision transformer之后基本少有人问津了。不过这个模型思路挺独特的&#xff0c;值得研究一下。 这个模型的提出是为了解决CNN模型学习到的特征之间没有空间上的关系&#xff0c;从而对于各…

开源监控zabbix对接可视化工具grafana教程

今天要给大家介绍的是开源监控工具zabbix对接可视化工具grafana问题。 有一定运维经验的小伙伴大抵都或多或少使用过、至少也听说过开源监控工具zabbix&#xff0c;更进一步的小伙伴可能知道zabbix在数据呈现方面有着明显的短板&#xff0c;因此需要搭配使用第三方的可视化工具…

背 单 词 (考研词汇闪过)

单词&#xff1a; 买考研词汇闪过 研究艾宾浩斯遗忘曲线 https://www.bilibili.com/video/BV18Y4y1h7YR/?spm_id_from333.337.search-card.all.click&vd_source5cbefe6dd70d6d84830a5891ceab2bf9 单词方法 闪记背两排&#xff08;5min&#xff09;重复一遍&#xff08;2mi…

4-云原生监控体系-Grafana-基本使用

1. 介绍 使用Grafana&#xff0c;您可以通过漂亮、灵活的仪表板创建、探索和共享所有数据。查询、可视化、提醒和理解您的数据&#xff0c;无论数据存储在何处。 图片出处&#xff1a; https://grafana.com/grafana/ 官方网站 2. 界面介绍 Connections 可以配置数据源&#x…

C语言 | Leetcode C语言题解之第21题合并两个有序链表

题目&#xff1a; 题解&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {/…

Python+Appium自动化测试(ios+Android)

一、软件安装 安装清单&#xff1a; JDKPythonnode.jsandroid-sdk(作者通过Android Studio安装)iOS-deploybrewlibimobiledevice依赖库ideviceinstallercarthage依赖库 appium-doctor&#xff08;安装后可在命令行中通过命令:appium-doctor检查还少啥&#xff09; WebDriverAg…

Spring入门——IoC控制反转

前言 本博客是博主用于学习Spring的博客&#xff0c;如果疏忽出现错误&#xff0c;还望各位指正。 Bean Bean的概念 Bean的详解&#xff0c;可以参考这篇文章。 【SpringBoot】Bean 是什么&#xff1f;_sptingboot bean 是什么-CSDN博客 Bean 作为 Spring框架面试中不可或…

微服务学习(黑马)

学习黑马的微服务课程的笔记 导学 微服务架构 认识微服务 SpringCloud spring.io/projects/spring-cloud/ 服务拆分和远程调用 根据订单id查询订单功能 存在的问题 硬编码 eureka注册中心 搭建eureka 服务注册 在order-service中完成服务拉取 Ribbon负载均衡 Nacos注册中心…

政安晨:【Keras机器学习实践要点】(二十五)—— 使用 EANet(外部注意力转换器)进行图像分类

目录 简介 设置 准备数据 配置超参数 使用数据增强 实施补丁提取和编码层 实施外部关注模块 实施 MLP 模块 执行变压器模块 实施 EANet 模式 培训 CIFAR-100 政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras机…

Flutter - flutter_gen 资源管理

引言&#xff1a; 在开发 Flutter 应用时&#xff0c;我们经常需要使用各种静态资源&#xff0c;如图片、字体和音频等。如何有效地管理和加载这些资源呢&#xff1f;本篇博客将以图片为例带你解密 Flutter 项目中是如何管理资源地。 assets 加载资源 具体文件名引入 在工程…

Leetcode 239. 滑动窗口最大值和Leetcode 347. 前 K 个高频元素

目录标题 Leetcode 239. 滑动窗口最大值题目描述C语言代码和题解解题思路 Leetcode 347. 前 K 个高频元素题目描述C语言题解和思路解题思路 Leetcode 239. 滑动窗口最大值 题目描述 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最…

[Kubernetes[K8S]集群:Slaver从节点初始化和Join]:添加到主节点集群内

文章目录 操作流程&#xff1a;上篇主节初始化地址&#xff1a;前置&#xff1a;Docker和K8S安装版本匹配查看0.1&#xff1a;安装指定docker版本 **[1 — 8] ** [ 这些步骤主从节点前置操作一样的 ]一&#xff1a;主节点操作 查看主机域名->编辑域名->域名配置二&#x…

STM32学习和实践笔记(9): 使用位带操作实现LED闪的实验

控制GPIO的那些寄存器&#xff0c;都在位带区。 根据上一篇讲的原理&#xff0c;要想每次只操作这些寄存的某一个bit而不影响别的bit&#xff0c;可以使用与这些bit相对应的位带别名区。 因此&#xff0c;在使用GPIO的位带操作之前&#xff0c;先要按上篇讲的原理&#xff0c…

通过前缀和来看golang的acm输入输出

前缀和 问题引入 package mainimport ("fmt" )func main() {var n, q, l, r intfmt.Scan(&n, &q)a : make([]int, n)ap : make([]int64, n 1)ap[0] 0for i : 0; i < n; i {fmt.Scan(&a[i])ap[i 1] ap[i] int64(a[i])}for j : 0; j < q; j {f…

远程桌面无法连接怎么办?

远程桌面无法连接是指在尝试使用远程桌面功能时出现连接失败的情况。这种问题可能会给工作和生活带来极大的不便&#xff0c;因此我们需要寻找解决办法。在讨论解决方案之前&#xff0c;我们先来了解一下【天联】组网的优势。 【天联】组网的优势有很多。它能够解决复杂网络环境…

[大模型]Qwen1.5-7B-Chat-GPTQ-Int4 部署环境

Qwen1.5-7B-Chat-GPTQ-Int4 部署环境 说明 Qwen1.5-72b 版本有BF16、INT8、INT4三个版本&#xff0c;三个版本性能接近。由于BF16版本需要144GB的显存&#xff0c;让普通用户忘却止步&#xff0c;而INT4版本只需要48GB即可推理&#xff0c;给普通用户本地化部署创造了机会。&…

MySQL数据库的详解(1)

DDL&#xff08;数据库操作&#xff09; 查询 查询所有数据库&#xff1a;show databases;当前数据库&#xff1a;select database(); 创建 创建数据库&#xff1a;create database [ if not exists] 数据库名 ; 使用 使用数据库&#xff1a;use 数据库名 ; 删除 删除数…

Deblurring 3D Gaussian Splatting去模糊3D高斯溅射

Abstract 摘要 Recent studies in Radiance Fields have paved the robust way for novel view synthesis with their photorealistic rendering quality. Nevertheless, they usually employ neural networks and volumetric rendering, which are costly to train and impede…

如何将普通maven项目转为maven-web项目

文件-项目结构&#xff08;File-->Project Structure &#xff09; 模块-->learn&#xff08;moudle-->learn&#xff09; 选中需要添加web的moudle&#xff0c;点击加号&#xff0c;我得是learn&#xff0c;单击选中后进行下如图操作&#xff1a; 编辑路径 结果如下…

微信小程序自定义关闭按钮在弹窗下面的效果

效果图: 我之前用vant 的popup的弹窗写&#xff0c;会出现close图标移动到弹窗内容外部不可见。 自定义代码&#xff1a; popup.JS/*** 生命周期函数--监听页面初次渲染完成*/onReady() {//自定义弹窗 动态获取屏幕高度var that this;wx.getSystemInfo({success: (result) &…