maven工具-maven的使用-镜像仓库、本地仓、IDEA使用maven

Maven

一、为什么使用maven

  1. 添加第三方jar包
  2. jar包之间的依赖关系
  3. 处理jar包之间的冲突
  4. 获取第三方jar包
  5. 将项目拆分成多个工程模块
  6. 实现项目的分布式部署

二、maven简介

​ Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

​ Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

三、maven的使用

1、下载和安装

  1. 下载官网:http://maven.apache.org/download.cgi

  2. 解压:要求目录不要过深、不要有中文和特殊符号

  3. 必须配置JAVA_HOME环境变量

  4. 配置环境变量

    • MAVEN_HOME 值为Maven的解压路径
    • 在path中配置 %MAVEN_HOME%\bin

在这里插入图片描述

  1. 查看安装是否正确:在cmd中通过命令

    mvn -v
    

    在这里插入图片描述

2、配置maven本地仓

  1. 本地仓位置(下载的jar包放置的位置):在解压路径的conf中的settings.xml,并配置阿里云镜像。

  2. 在标签中的最后添加本地仓的设置

    <settings><localRepository>D:\mavenjar</localRepository>
    </settings>
    
  3. 在标签中配置镜像

<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

3、创建指定目录

  1. 目录结构(手动新建)

    project

    ​ src

    ​ ——main

    ​ ————java

    ​ ————resources

    ​ ——test

    ​ ————java

    ​ ————resources

    ​ pom.xml

  2. 目录表示

    在这里插入图片描述

  3. 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.etime</groupId><artifactId>maven</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency></dependencies>
    </project>
    
  4. 在src/mian/java/com/etime/maven路径下创建Demo1.java

    package com.etime.maven;
    public class Demo1{public String sayHello(String name){return "Hello "+name+"!";}
    }
    
  5. 在src/test/java/com/etime/maven路径下创建创建TestDemo1.java

    package com.etime.maven;
    import org.junit.Test;public class TestDemo1{@Testpublic void t01(){Demo1 d = new Demo1();String res = d.sayHello("World!");System.out.println(res);	}
    
  6. 在控制台中进入pom.xml文件所在目录

    在这里插入图片描述

  7. 执行 mvn compile命令

    • 查看根目录变化和仓库的变化(第一次会有点慢,下载指定的jar包,并将main当中的java文件编译成字节码文件)

      在这里插入图片描述

    • 根目录的变化

      在这里插入图片描述

    • 仓库的变化

      在这里插入图片描述

  8. cmd 中继续录入mvn clean命令

    • 再次查看根目录和仓库的变化(清理之前生成的字节码文件)

      在这里插入图片描述

    • 根目录变化
      在这里插入图片描述

    • 仓库变化

      在这里插入图片描述

  9. 再次录入 mvn compile命令

    • 查看根目录变化(快了很多,只重新生成字节码文件,下载新配置的jar包(如果没有新配置,则不需要下载))

      在这里插入图片描述

    • 根目录变化

在这里插入图片描述

  1. cmd 中录入 mvn test-compile命令,

    • 查看target目录的变化(将test中的java文件编译成字节码文件)

    在这里插入图片描述

    • target目录变化

      在这里插入图片描述

  2. cmd 中录入 mvn test命令,查看target目录变化

    在这里插入图片描述

    • 执行TestDemo1.java的结果:

      在这里插入图片描述

    • target-test变化02

      在这里插入图片描述

  3. cmd 中录入 mvn package命令,查看target目录变化(将项目打包)

![在这里插入图片描述](https://img-blog.csdnimg.cn/8b14e6f7534d4189b12424e71e6ac99c.png#pic_center)- target目录变化![在这里插入图片描述](https://img-blog.csdnimg.cn/c51a4e1f7e7e4c6d8587a77529c7fe7e.png#pic_center)
  1. cmd 中录入 mvn install命令, 查看本地仓库的目录变化(将项目打包并放到本地仓库当中)

    在这里插入图片描述

  2. 注意

    • 运行Maven命令时一定要进入pom.xml文件所在的目录!

四、maven核心概念

1、POM

(1) POM:Project Object Model,项目对象模型。

(2) 将Java工程的相关信息封装为对象作为便于操作和管理的模型。

(3) Maven工程的核心配置。

(4) 可以说学习Maven就是学习pom.xml文件中的配置。

2、坐标

(1) maven的坐标

  • groupId:公司或组织的域名倒叙(类似于:com.etime)
  • artifactId:当前项目的模块名称(类似于:maven)
  • version:版本

(2) 举例

<groupId>com.etime</groupId>
<artifactId>maven</artifactId>
<version>1.0-SNAPSHOT</version>

(3) jar包的网站

  • 网址:https://search.maven.org/search

(4) 通过坐标找到执行的jar包

  • 将 groupid、artiactid、version向量链接器得com.etime+maven+1.0 SVNPSHOT
  • 根据上方拼接结果作为目录结果在本地仓库中进行查找
    • D:\mavenjar\com\etime\maven\1.0-SNAPSHOT\maven-1.0-SNAPSHOT.jar

3、依赖

(1)创建需要引入依赖的项目

  1. 项目结结构

    day02

    ​ src

    ​ ——main

    ​ ————java

    ​ ————resources

    ​ ——test

    ​ ————java

    ​ ————resources

    ​ pom.xml

  2. 在新建项目的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.etime</groupId><artifactId>demo</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>com.etime</groupId><artifactId>maven</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
    </project>
    
  3. 在新建项目的src/main/java/com/etime/maven2中新建Demo02.java文件

    package com.etime.maven1;
    import com.etime.maven.Demo1;
    public class Demo2{public String say(String name){Demo1 d = new Demo1();String res =  d.sayHello(name)+" I am mary";return res;}
    }
    
  4. 在新建项目的src/test/java/com/etime/maven2中新建TestDemo02.java文件

    package com.etime.maven1;
    import org.junit.Test;
    public class TestDemo2{@Testpublic void t01(){Demo2 d = new Demo2();String res = d.say("jack");System.out.println(res);}
    }
    
  5. 进入day02项目中pom.xml所在的位置,打开命令窗口分别执行 mvn compile、mvn test-compile、mvn test

在这里插入图片描述

  1. 问题

    • 这里project就是我们的第一个Maven工程,现在day02对它有依赖。那么这个依赖能否成功呢?更进一步的问题是:day02工程会到哪里去找project呢
    • 回答:本地仓库。任何一个Maven工程会根据坐标到本地仓库中去查找它所依赖的jar包。如果能够找到则可以正常工作,否则就不行。

(2)依赖管理

  1. 当A jar包需要用到B jar包中的类时,我们就说A对B有依赖。例如:commons-fileupload-1.3.jar依赖于commons-io-2.0.1.jar。

  2. 通过第二个Maven工程我们已经看到,当前工程会到本地仓库中根据坐标查找它所依赖的jar包。

  3. 配置的基本形式是使用dependency标签指定目标jar包的坐标。

    <dependencies><dependency><!—坐标 --><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><!-- 依赖的范围 --><scope>test</scope></dependency>
    </dependencies>
    
  4. 依赖的范围

    • compile
    • main目录下的Java代码可以访问这个范围的依赖
    • test目录下的Java代码可以访问这个范围的依赖
    • 部署到Tomcat服务器上运行时要放在WEB-INF的lib目录下
    • 例如:对Demo1的依赖。主程序、测试程序和服务器运行时都需要用到。
    • test
    • main目录下的Java代码不能访问这个范围的依赖
    • test目录下的Java代码可以访问这个范围的依赖
    • 部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下
    • 对junit的依赖。仅仅是测试程序部分需要。
    • provided
    • main目录下的Java代码可以访问这个范围的依赖
    • test目录下的Java代码可以访问这个范围的依赖
    • 部署到Tomcat服务器上运行时不会放在WEB-INF的lib目录下
    • servlet-api在服务器上运行时,Servlet容器会提供相关API,所以部署的时候不需要。
    • 其他:runtime、import、system等。

(3)依赖的传递性

  1. 如果A依赖B,B依赖C,那么A→B和B→C都是直接依赖,而A→C是间接依赖
  2. 当存在间接依赖的情况时,主工程对间接依赖的jar可以访问吗?这要看间接依赖的jar包引入时的依赖范围——只有依赖范围为compile时可以访问。

(4)依赖的原则:解决jar包冲突

  1. 路径最短者优先
  2. 路径相同时先声明者优先
  3. 这里“声明”的先后顺序指的是dependency标签配置的先后顺序。

(5)依赖的排除

  1. 当前工程为public,直接依赖environment。environment依赖commons-logging的1.1.1对于public来说是间接依赖。
  2. 当前工程public直接依赖commons-logging的1.1.2加入exclusions配置后可以在依赖environment的时候排除版本为1.1.1的commons-logging的间接依赖。
Environment工程:
<dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</version>
</dependency>当前工程:
<dependency><groupId>com.etime.maven</groupId><artifactId>Environment</artifactId><version>0.0.1-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>

(6)统一管理目标jar包的版本

  1. 以对Spring的jar包依赖为例:

    • Spring的每一个版本中都包含spring-core、spring-context等jar包。我们应该导入版本一致的Spring jar包,而不是使用4.0.0的spring-core的同时使用4.1.1的spring-context。
    <dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.0.0.RELEASE</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.0.0.RELEASE</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.0.0.RELEASE</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.0.0.RELEASE</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.0.0.RELEASE</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.0.0.RELEASE</version>
    </dependency>
    
  2. 问题是如果我们想要将这些jar包的版本统一升级为4.1.1,是不是要手动一个个修改呢?显然,我们有统一配置的方式:

    <properties><spring.version>4.1.1.RELEASE</spring.version>
    </properties>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version>
    </dependency>
    <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version>
    </dependency>
    

4、仓库

(1) 本地仓库

  • 为当前本机电脑上的所有Maven工程服务。

(2) 远程仓库

  • 私服:架设在当前局域网环境下,为当前局域网范围内的所有Maven工程服务。
  • 中央仓库:架设在Internet上,为全世界所有Maven工程服务。
  • 中央仓库的镜像:架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,同时更快的响应用户请求。

(3) 仓库中文件

  • Maven的插件
  • 我们自己开发的项目的模块
  • 第三方框架或工具的jar包
  • 注意:不管是什么样的jar包,在仓库中都是按照坐标生成目录结构,所以可以通过统一的方式查询或依赖。

5、生命周期

(1)maven的生命周期

  1. Maven生命周期定义了各个构建环节的执行顺序,有了这个清单,Maven就可以自动化的执行构建命令了。
  2. maven有三套相互独立的生命周期
    • Clean Lifecycle在进行真正的构建之前进行一些清理工作。
    • Default Lifecycle构建的核心部分,编译,测试,打包,安装,部署等等。
    • Site Lifecycle生成项目报告,站点,发布站点。
  3. 它们是相互独立的,你可以仅仅调用clean来清理工作目录,仅仅调用site来生成站点。当然你也可以直接运行 mvn clean install site 运行所有这三套生命周期。
  4. 生命周期分类
    • clean生命周期:Clean Lifecycle 在进行真正的构建之前进行一些清理工作。Clean生命周期一共包含了三个阶段
      • pre-clean 执行一些需要在clean之前完成的工作
      • clean 移除所有上一次构建生成的文件
      • post-clean 执行一些需要在clean之后立刻完成的工作
    • Default生命周期:是构建的核心部分,编译,测试,打包,部署等等,Default生命周期是Maven生命周期中最重要的一个,绝大部分工作都发生在这个生命周期中。
      • compile 编译项目的源代码
      • install 将包安装至本地仓库,以让其它项目依赖。
      • deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享
      • process-test-resources 复制并处理资源文件,至目标测试目录
      • process-resources 复制并处理资源文件,至目标目录,准备打包
      • test-compile 编译测试源代码
      • test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署
      • package 接受编译好的代码,打包成可发布的格式,如 JAR,war
    • Site生命周期(Site Lifecycle):生成项目报告,站点,发布站点,站点的文档(站点信息,依赖…)。
      • pre-site 执行一些需要在生成站点文档之前完成的工作
      • site 生成项目的站点文档
      • post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
      • site-deploy 将生成的站点文档部署到特定的服务器上

7、继承

(1)继承机制

  • 由于非compile范围的依赖信息是不能在“依赖链”中传递的,所以有需要的工程只能单独配置。此时如果项目需要将各个模块的junit版本统一为4.9,那么到各个工程中手动修改无疑是非常不可取的。使用继承机制就可以将这样的依赖信息统一提取到父工程模块中进行统一管理。

(2)继承项目创建

  1. 创建父工程

  2. 创建子模块

    • 在父工程中new - module 创建子模块(Java工程或者JavaWeb工程)
  3. 创建父工程和创建一般的Java工程操作一致,唯一需要注意的是:打包方式处要设置为pom。

  4. 在子模块中引用父工程

    <parent><!-- 父工程坐标 --><groupId>...</groupId><artifactId>...</artifactId><version>...</version><relativePath>从当前目录到父项目的pom.xml文件的相对路径</relativePath>
    </parent>
    

五、IDEA整合maven

1、创建Maven项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、创建Maven的JavaWeb项目

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、Maven配置

在这里插入图片描述

4、简单测试

  1. 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><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><packaging>war</packaging><groupId>com.etime</groupId><artifactId>day02</artifactId><version>1.0-SNAPSHOT</version><dependencies><!--   DBUtils    --><dependency><groupId>commons-dbutils</groupId><artifactId>commons-dbutils</artifactId><version>1.6</version></dependency><!-- 数据库相关 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><!--c3p0--><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies>
    </project>
    
  2. Demo.java

    package com.etime.demo;import org.apache.commons.dbutils.QueryRunner;
    import org.junit.Test;import java.sql.SQLException;public class StudentDemo {@Testpublic void t01() {//删除学号为1的学生QueryRunner queryRunner = new QueryRunner(C3P0Util.getDataSource());String sql = "delete from student where sid=2";try {int rows = queryRunner.update(sql);System.out.println(rows);} catch (SQLException e) {e.printStackTrace();}}
    }
    
    • 注意:c3p0的配置文件需要放到test中的resources文件夹中

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OiYbFKb0-1692059360442)(F:\Java语言\课程笔记\第六阶段\myself\maven\img\testc3p0.png)]

.demo;

import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;

import java.sql.SQLException;

public class StudentDemo {
@Test
public void t01() {
//删除学号为1的学生
QueryRunner queryRunner = new QueryRunner(C3P0Util.getDataSource());
String sql = “delete from student where sid=2”;
try {
int rows = queryRunner.update(sql);
System.out.println(rows);
} catch (SQLException e) {
e.printStackTrace();
}
}
}


- 注意:c3p0的配置文件需要放到test中的resources文件夹中

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

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

相关文章

2023.8 - java - 对象和类

public class Dog {String breed;int size;String colour;int age;void eat() {}void run() {}void sleep(){}void name(){} } 一个类可以包含以下类型变量&#xff1a; 局部变量&#xff1a;在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方…

基于STM32标准库智能风扇设计

目录 一&#xff0c;前言 二&#xff0c;系统方案选择 三&#xff0c;实体展示 工程分类 四&#xff0c;相关代码 PWM.c PWM.h AD.c AD.h 电机驱动程序 舵机驱动 一&#xff0c;前言 当今生活中&#xff0c;风扇已成为人们解暑的重要工具&#xff0c;然而使用风扇缓解…

CentOS系统环境搭建(九)——centos系统下使用docker部署项目

centos系统环境搭建专栏&#x1f517;点击跳转 关于Docker-compose安装请看CentOS系统环境搭建&#xff08;三&#xff09;——Centos7安装Docker&Docker Compose&#xff0c;该文章同样收录于centos系统环境搭建专栏。 Centos7部署项目 采用前后端分离的形式部署。使用Do…

QT学习笔记-QT5.15编译及安装谷歌拼音输入法(QtInputMethod_GooglePinyin)

QT学习笔记-QT5.15编译及安装谷歌拼音输入法&#xff08;QtInputMethod_GooglePinyin&#xff09; 0、背景1、环境2、下载QtInputMethod_GooglePinyin源码3、使用MinGW64构建套件编译3.1 编译QtInputMethod_GooglePinyin源码3.2、部署tgtsmlInputContextPlugin输入法插件3.3、运…

分布式 - 服务器Nginx:一小时入门系列之负载均衡

文章目录 1. 负载均衡2. 负载均衡策略1. 轮询策略2. 最小连接策略3. IP 哈希策略4. 哈希策略5. 加权轮询策略 1. 负载均衡 跨多个应用程序实例的负载平衡是一种常用技术&#xff0c;用于优化资源利用率、最大化吞吐量、减少延迟和确保容错配置。‎使用 nginx 作为非常有效的HT…

2023 最新版网络安全保姆级指南,从 0 基础进阶网络攻防工程师

一、网络安全学习的误区 1.不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;且过渡到网络安全用到编程的用到的编程的关键点不多。一般人如果想要把编程学好再开始学习网络安全往…

Lnton羚通关于PyTorch的保存和加载模型基础知识

SAVE AND LOAD THE MODEL (保存和加载模型) PyTorch 模型存储学习到的参数在内部状态字典中&#xff0c;称为 state_dict, 他们的持久化通过 torch.save 方法。 model models.shufflenet_v2_x0_5(pretrainedTrue) torch.save(model, "../../data/ShuffleNetV2_X0.5.pth…

vue2.6升级vue2.7(panjiachen升级指南)vue-cli5多页面应用升级的坑

vue2.7升级指南 vue2.7升级指南 之前的架子使用的是 panjiachen&#xff0c;使用的是 vue2.6.14&#xff0c;现在升级为 vue2.7.x 升级vue/cli vue upgrade 这里推荐使用 vue upgrade 命令自动升级 # 确保安装全局 vue/cli $ npm install -g vue/cli $ vue upgradeWARN Th…

水库大坝安全监测MCU,提升大坝管理效率的利器!

水库大坝作为防洪度汛的重要设施&#xff0c;承担着防洪抗旱&#xff0c;节流发电的重要作用。大坝的安全直接关系到水库的安全和人民群众的生命财产安全。但因为水库大坝的隐患不易被察觉&#xff0c;发现时往往为时已晚。因此&#xff0c;必须加强对大坝的安全管理。其安全监…

RFID技术助力汽车零配件装配产线,提升效率与准确性

随着科技的不断发展&#xff0c;越来越多的自动化设备被应用到汽车零配件装配产线中。其中&#xff0c;射频识别&#xff08;Radio Frequency Identification&#xff0c;简称RFID&#xff09;技术凭借其独特的优势&#xff0c;已经成为了这一领域的重要技术之一。本文将介绍RF…

【SLAM】ORBSLAM34macOS: ORBSLAM3 Project 4(for) macOS Platform

文章目录 配置ORBSLAM34macOS 版本运行步骤&#xff1a;版本修复问题记录&#xff1a;编译 fix运行 fix 配置 硬件&#xff1a;MacBook Pro Intel CPU 系统&#xff1a;macOS Ventura 13.4.1 ORBSLAM34macOS 版本 https://github.com/phdsky/ORB_SLAM3/tree/macOS 运行步骤&…

初识结构体

文章目录 目录1. 结构体类型的声明1.1 结构的基础知识1.2 结构的声明1.3 结构成员的类型1.4 结构体变量的定义和初始化 2. 结构体成员的访问3. 结构体传参 目录 结构体类型的声明结构体初始化结构体成员访问结构体传参 1. 结构体类型的声明 1.1 结构的基础知识 结构是一些值的…

三维可视化平台有哪些?Sovit3D可视化平台怎么样?

随着社会经济的发展和数字技术的进步&#xff0c;互联网行业发展迅速。为了适应新时代社会发展的需要&#xff0c;大数据在这个社会经济发展过程中随着技术的进步而显得尤为重要。同时&#xff0c;大数据技术的快速发展进程也推动了可视化技术的飞速发展&#xff0c;国内外各类…

四层和七层负载均衡的区别

一、四层负载均衡 四层就是ISO参考模型中的第四层。四层负载均衡器也称为四层交换机&#xff0c;它主要时通过分析IP层和TCP/UDP层的流量实现的基于“IP端口”的负载均衡。常见的基于四层的负载均衡器有LVS、F5等。 以常见的TCP应用为例&#xff0c;负载均衡器在接收到第一个来…

hive-无法启动hiveserver2

启动hiveserver2没有反应&#xff0c;客户端也无法连接( beeline -u jdbc:hive2://node01:10000 -n root) 报错如下 查看hive的Log日志&#xff0c;发现如下报错 如何解决 在hive的hive_site.xml中添加如下代码 <property><name>hive.server2.active.passive…

电机故障诊断(python程序,模型为MSCNN结合LSTM结合注意力机制模型,有注释)

代码运行环境要求&#xff1a;TensorFlow版本>2.4.0&#xff0c;python版本>3.6.0 1.电机常见的故障类型有以下几种&#xff1a; 轴承故障&#xff1a;轴承是电机运转时最容易受损的部件之一。常见故障包括磨损、疲劳、过热和润滑不良&#xff0c;这些问题可能导致噪音增…

Hlang--用Python写个编程语言-判断与循环

文章目录 前言语法描述判断循环词法解析语法解析定义节点生成节点判断节点循环节点解释器处理判断节点循环处理前言 okey,很好,在上一篇文章当中,我们实现了这个基本的逻辑运算,所以的话,在这里,我们将可以实现到我们的这个判断和循环了。由于这里的话,我们的操作其实和…

TiDB Bot:用 Generative AI 构建企业专属的用户助手机器人

本文介绍了 PingCAP 是如何用 Generative AI 构建一个使用企业专属知识库的用户助手机器人。除了使用业界常用的基于知识库的回答方法外&#xff0c;还尝试使用模型在 few shot 方法下判断毒性。 最终&#xff0c;该机器人在用户使用后&#xff0c;点踩的比例低于 5%&#xff0…

汽车租赁管理系统/汽车租赁网站的设计与实现

摘 要 租赁汽车走进社区&#xff0c;走进生活&#xff0c;成为当今生活中不可缺少的一部分。随着汽车租赁业的发展&#xff0c;加强管理和规范管理司促进汽车租赁业健康发展的重要推动力。汽车租赁业为道路运输车辆一种新的融资服务形式、广大人民群众一种新的出行消费方式和…

龙蜥社区安全联盟(OASA)正式成立,启明星辰、绿盟、360 等 23 家厂商重磅加入

7 月 28 日&#xff0c;由启明星辰、绿盟、360、阿里云、统信软件、浪潮信息、中兴通讯&#xff5c;中兴新支点、Intel、中科院软件所等 23 家单位共同发起的龙蜥社区安全联盟&#xff08;OASA&#xff0c;OpenAnolisSecurityAlliance&#xff09;&#xff08;以下简称“安全联…