Java零基础-Maven项目构建(最详细)

news2024/9/20 15:39:09

【Maven】
1.当前开发中存在的问题

1.1. 一个项目就是一个工程
如果项目非常庞大,就不适合继续使用package划分模块.最好是每一个模块对应一个项目,利于分工协作,也利于项目针对性能化的部署.

1.2. 项目中需要的jar包必须拷贝
项目中的jar包需要手动"复制" "粘贴"到WEB-INF/lib文件夹中

同样的的jar包会重复出现在不同的项目中,一方面浪费存储空间,而工程比较臃肿.

借助Maven,可以将jar包仅仅保存在"仓库中",有需要使用的工程只需要引用仓库中的jar包,并不需要真的需要把jar包复制过来。

1.3. jar包需要提前准备
不同的技术网站jar包下载方式存在一定的差异.

有些技术官网其jar就是通过Maven或者SVN/GIT等专门的工具进行下载.

借助于Maven可以以一种规范的方式下载jar包.因为所有知名框架或者第三方的工具包,按照统一的规范存放在Maven中央仓库。

1.4. jar包依赖的jar包需要导入项目
如果所有的jar包之间的依赖性关系都需要程序员维护,提高了学习成本。

2.Maven概述
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven是一款服务于Java平台的自动构建工具。

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

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

2.1 什么是构建
以Java源文件,框架配置文件,JSP,HTML,图片等资源作为原材料,去生产一个可以运行的项目过程。

编译:Java源文件----->编译(javac)----->Class文件—Java–>交给JVM执行

部署:一个BS项目运行的并不是动态WEB项目本身,而是这个动态WEB工程"编译的结果"

2.2 构建的各个环节
2.2.1 清理 maven clean
将以前编译得到的class字节码文件删除,为下次编译做准备

2.2.2 编译 maven compile
将Java源程序编译成class字节码文件

2.2.3 测试 maven test
自动测试,自动调用JUnit程序

2.2.4 报告
测试程序执行的结果就是测试报告

2.2.5 打包 maven package
就是将编译好的class字节码文件进行封装成一个文件包(war包),web工程是war包,Java工程是jar包

2.2.6 安装 maven install
Maven的特定概念,将打包得到的文件复制到"仓库"中指定的位置

2.2.7 部署(发布) maven deploy
将动态的web项目生成的war包复制到指定的服务器目录下,可以使其运行

2.3 基本原理
Maven 的基本原理很简单,采用远程仓库和本地仓库以及一个类似 build.xml 的 pom.xml ,将 pom.xml 中定义的 jar 文件从远程仓库下载到本地仓库,各个应用使用同一个本地仓库的 jar ,同一个版本的 jar 只需下载一次,而且避免每个应用都去拷贝 jar 。

同时它采用了现在流行的插件体系架构,只保留最小的核心,其余功能都通过插件的形式提供,所以 maven 下载很小,在执行 maven 任务时,才会自动下载需要的插件。
在这里插入图片描述

mirror相当于一个拦截器,它会拦截maven对remote repository的相关请求,把请求里的remote repository地址,重定向到mirror里配置的地址。
在这里插入图片描述

此时,B Repository被称为A Repository的镜像。如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。换句话说,任何一个可以从仓库Y获得的构件,都能够从它的镜像中获取。

< mirrors/>是镜像列表,是maven从远程仓库里下载构件的一组服务器镜像。镜像能减轻中央maven库的负载,也能突破代理等的网络环境的限制,每个仓库都有一个ID,而mirror需要和仓库的ID对应。

2.4 坐标
(1)定义

坐标用来标识时空中的某个点,方便人们找到位置,如中电信息大厦可以用经纬度坐标找到,也可以通过国家、省市区、街道、门牌组成的坐标去找。

(2)分类

groupId: 组织ID,一般是公司、团体名称 com.alibaba.xxx

artifactId:实际项目的ID,一般是项目、模块名称 工程名

version:版本,开发中的版本一般打上 SNAPSHOT 标记

Type/packaging :包类型,如JAR,WAR,POM…

classifier:分类,如二进制包、源、文档

通过这个规则就可以定位到世界上任何一个构件。

2.5 三级仓库结构
(1)远程公用仓库

Maven 内置了远程公用仓库: http://repo1.maven.org/maven2 这个公用仓库也叫中央仓库是由 Maven 自己维护,包好了世界上大部分流行的开源项目构件。

https://mvnrepository.com

(2)内部中央仓库

也称私有共享仓库(私服)。一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可以作为公用类库镜像缓存,减少在外部访问和下载的频率。

(3)本地仓库

Maven 会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,通常默认在 $user.home/.m2/repository 下。

3.Maven环境变量配置
3.1 检查JAVA_HOME环境变量
MAVEN是由Java编写,其也依赖JAVA环境变量

3.2 解压安装Maven文件
在这里插入图片描述

3.3 配置MAVEN_HOME
MAVEN_HOME/M2_HOME的配置是为了maven中命令的执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过:mvn -version/mvn -v 查看安装的Maven信息

3.4 Maven常用命令

  1. mvn clean: 清理

  2. mvn compile :编译主程序

  3. mvn test-compile : 编译测试程序

  4. mvn test : 执行测试

  5. mvn package : 打包

  6. mvn install : 安装

4.IDEA配置本地Maven
注意:maven默认的JDK版本:1.5,所以在使用Maven需要对maven的编译环境进行配置。
在这里插入图片描述

4.1 配置本地仓库

D:/DevTools/server/repository
本地的仓库 jar包存放的文件夹。

在IDEA 2020.1 版本不能配置本地仓库,配置后可能出现无法找到jar包

需要在IDEA中指定本地仓库。

4.2 在settings中配置JDK编译的版本号

<profiles>

<profile>

      <id>jdk1.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>

4.3 配置镜像服务器

<!-- 配置阿里云镜像 -->

 <mirror>

  <id>alimaven</id>

  <name>aliyun maven</name>

  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

  <mirrorOf>central</mirrorOf>

</mirror>

4.4 在IDEA中配置本地Maven
在这里插入图片描述
在这里插入图片描述

5.IDEA创建Maven项目
5.1 准备工作创建空项目

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

5.2 创建Java项目模块
5.2.1 创建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2.2 加入依赖
在这里插入图片描述

注意:

如果项目相关jar包已经引入了,但是没法使用jar包:

  1. 刷新

  2. 重启IDEA

5.3 创建web项目
5.3.1 创建
在这里插入图片描述在这里插入图片描述

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

在这里插入图片描述

5.3.2 配置tomcat
在这里插入图片描述
在这里插入图片描述

注意:

maven的web项目执行方案,有两种:

  1. 使用maven插件,tomcat插件. maven的tomcat插件,目前能够找到的是tomcat 7.0,容易出现jar包的版本冲突问题

  2. 配置tomcat服务器,然后在tomcat服务器中运行

6.Maven的核心概念
6.1 Maven约定的目录结构

项目文件夹名称

src目录

|–main

|–java

|–resources

|–test

|–java

|–resources

target目录

pom.xml

以上目录是maven标准的目录,

src 源码目录

main 主程序目录

test 测试程序目录

target 编译文件目录

pom.xml 项目maven配置文件

6.2 POM
POM文件,是maven项目的核心配置管理文件,主要配置:项目的依赖信息,

依赖jar包或者依赖的项目,配置项目的编译信息。

6.3 GAV
Maven在很大程度上就是管理jar包的一个仓库,所以需要区分jar包。maven为了区分jar包建立一套坐标系统,所有的jar包都是软件/项目,软件是公司或者组织开发,一个公司/组织又可能存在多个软件/项目,并且同一个软件/项目也存在版本的差异。

基于这样的情况,maven使用公司/组织、项目、版本号三个标识结合在一起,对jar包进行唯一定位。

groupId 公司/组织

artifactId 项目/模块名

version 版本号

6.4 仓库
在maven中,存放jar包的文件夹,就是仓库。按照GAV信息,形成目录路径存放jar文件。Maven根据GAV信息,从仓库中查找jar文件。

6.4.1 仓库的分类
中央仓库 : maven仓库 美国

仓库镜像 : 由于中央在美国,其他区域访问时,慢,且中央仓库压力大,在这样的情况下,出现仓库镜像,分担中央仓库的压力。

私服仓库:不论是中央仓库还是镜像仓库,都是对外公开的仓库,可能存在一些公司,自主研发的技术,需要被使用,但是又不希望暴露,公司可以自己搭建maven仓库,设置访问权限,只有有访问权限的人才能访问。

本地仓库:开发者本地存放jar的文件夹。
在这里插入图片描述

6.5 依赖
依赖,maven项目需要的关联的jar信息,可以通过在pom.xml文件中,配置相关jar包信息,让maven项目自动导入相关jar包。

<dependencies>
  <dependency>
    <groupId>xxxx</groupId>
    <artifactId>xxx</artifactId>
    <version>xxxx</version>
  </dependency>
</dependencies>

6.5.1 依赖的作用域
依赖的作用域就是指依赖生效的范围。在依赖的配置中,可以通过制定scope标签的值,设置依赖的作用范围。
在这里插入图片描述

以上3个值中:

compile作用域,jar包会全程参与

test 作用域,只会对测试程序目录生效,且不参与打包

provided 作用域,只参与开发,不参与打包。例如:servlet和jsp的jar包,可以在pom文件中引入,这样在开发web项目时就可以直接使用相关的api,但是实际运行时,项目在tomcat服务器中运行,tomcat服务器有自己的相关jar包,此时项目有jsp和servlet的jar包,tomcat自身也有,会出现jar包冲突,基于这样的情况,设置项目中jar包的作用域provided

注意:

scope还有system属性值,system表示系统本地的,如果maven仓库没有jar包,此时无法进行下载,可以使用system表示这个jar包在本地,可以通过systemPath 设置本地jar包的路径

6.5.2 依赖的传递性
如果A项目中引入了某个jar包,B项目引入A项目,B项目就可以使用A项目中引入的jar包,这种行为就是依赖的传递性。
在这里插入图片描述

6.5.3 jar包的排除
由于jar包具有传递性,可能出现在引入jar包时引入了重复jar包。可能这些重复jar包的版本号还不一致。实际上能够引入生效jar包只有一个,如果这个生效的jar不是当前项目需要的,则可以进行排除。

注意:

当出现重复jar包,maven采用最短路径原则,如果路径一样,采用最下面的。
在这里插入图片描述

注意:

<!--

            ref-v1  和  ref-v2 都同时存在java-project01的jar包

            由于maven ref-v1中java-project01 版

            ref-v2 中java-project01 中 2.0版没有被使用

            如果项目需要使用新的jar包  则需要排除不需要的jar包

         -->

        <dependency>

            <groupId>org.example</groupId>

            <artifactId>ref-v1</artifactId>

            <version>1.0-SNAPSHOT</version>

            <exclusions>

                <exclusion>

                    <groupId>com.example</groupId>

                    <artifactId>java-project01</artifactId>

                </exclusion>

            </exclusions>

        </dependency>

        <dependency>

            <groupId>org.example</groupId>

            <artifactId>ref-v2</artifactId>

            <version>1.0-SNAPSHOT</version>

        </dependency>

6.5.4 依赖继承

继承,在Java中子类可以继承父类的属性方法。在Maven中,子项目可以继承父项目的依赖。在Maven中,子项目可以直接继承父项目中的所有的依赖,但是这样会导致子项目可能需要也可能不需要的依赖都会被继承,所以maven中也提供,父项目声明依赖,子项目不能直接继承,需要显示的声明依赖,才能继承。

6.5.4.1 直接继承依赖
【创建父项目】
在这里插入图片描述
在这里插入图片描述

【创建子项目】
在这里插入图片描述
在这里插入图片描述

【查看依赖关系】
在这里插入图片描述

在父项目中,dependencies中依赖,会被子项目直接继承。
在这里插入图片描述

在父项目里面定义类可以在子项目里面直接使用

6.5.4.2 需要显示声明才能继承【依赖管理】
如果希望,子项目中使用jar通过父项目定义,则可以使用dependencyManagement

进行管理,子项目中,只需要声明jar的groupId和artifactId,则默认优先去父项目中查找这个依赖,然后继承。

这样做,可以优化子项目的继承,只需要引入需要的jar,父项目中定义了依赖,可以统一依赖之间的版本,减少版本的冲突。
在这里插入图片描述

需要显示的声明,但是可以不用指定版本号

6.5.5 统一定义变量
在maven项目,pom.xml中可能引入相当多的jar包,这些jar的版本号相应一致的,如果版本号发生了变化,所有相关的jar的版本号就都要进行修改。此时需要定义变量,在依赖直接使用变量,如果版本信息发生变化,只需要修改变量即可。

变量可以在pom文件中properties标签中定义,使用${自定义的标签名引入}
在这里插入图片描述
在这里插入图片描述

7.项目聚合
在目前实际开发中,随着业务需求复杂,项目越来越大,项目架构逐渐演变,

单体应用 —> 垂直应用 —> 微服务应用

单体应用:单个项目 java、html、css、js等全部写在一个工程里

垂直应用:整个项目竖型结构,例如:前后端分离

微服务应用:应用是服务,服务和服务之间组合,产生新的服务

在一个项目中,存在多个模块,模块之间存在联系,存在依赖。将一个大型项目拆分成多个项目。在项目之间相互依赖,组成新的项目。

使用maven的module项目,完成项目的拆分,将一个系统可以拆分为n个子系统(子项目)进行开发:

可以按照三层结果进行拆分,也可以按照项目的模块进行拆分。
在这里插入图片描述

7.1 建立maven_crm项目
在这里插入图片描述

Packaging:pom项目

<?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.example</groupId>
    <artifactId>maven_crm</artifactId>
    <packaging>pom</packaging>
    <version>1.0</version>
    <modules>
        <module>maven_crm_domain</module>
        <module>maven_crm_dao</module>
        <module>maven_crm_service</module>
        <module>maven_crm_web</module>
    </modules>
</project>
 

7.2 建立maven_crm_domain项目
在这里插入图片描述

Packaging: jar

继承:maven_crm

<?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">
    <parent>
        <artifactId>maven_crm</artifactId>
        <groupId>com.example</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>maven_crm_domain</artifactId>
</project>

7.3 建立maven_crm_dao项目
在这里插入图片描述

Packageing:jar

继承:maven_crm

依赖:maven_crm_domain

<?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">
    <parent>
        <artifactId>maven_crm</artifactId>
        <groupId>com.example</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>maven_crm_dao</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>maven_crm_domain</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>
</project>

7.4 建立maven_crm_service项目
在这里插入图片描述

Packageing:jar

继承:maven_crm

依赖:maven_crm_dao

<?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">
    <parent>
        <artifactId>maven_crm</artifactId>
        <groupId>com.example</groupId>
        <version>1.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>maven_crm_service</artifactId>

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>maven_crm_dao</artifactId>
            <version>1.0</version>
        </dependency>
    </dependencies>
</project>

7.5 建立maven_crm_web项目
在这里插入图片描述
在这里插入图片描述

Packageing:war

继承:maven_crm

依赖:maven_crm_service

<?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.example</groupId>
  <artifactId>maven_crm_web</artifactId>
  <version>1.0</version>
  <packaging>war</packaging>

  <name>maven_crm_web Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <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>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>maven_crm_service</artifactId>
      <version>1.0</version>
    </dependency>
  </dependencies>

  <build>
    <finalName>maven_crm_web</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

7.6 具体的依赖根据项目情况而配置

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

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

相关文章

定时关机软件哪个好?定时关机软件大盘点

在生活和工作中&#xff0c;我们可以使用定时关机软件来定时关闭电脑&#xff0c;以实现对电脑的控制。那么&#xff0c;定时关机软件哪个好呢&#xff1f;下面我们就来了解一下。 定时关机软件的作用 定时关机软件可以帮助用户在预设的时间自动关闭电脑。这对于那些需要在特…

基于Docker的安装和配置Canal

基本介绍 Canal介绍&#xff1a;Canal 是用 Java 开发的基于数据库增量日志解析&#xff0c;提供增量数据订阅&消费的中间件&#xff08;数据库同步需要阿里的 Otter 中间件&#xff0c;基于 Canal&#xff09;。 Canal背景&#xff1a;阿里巴巴 B2B 公司&#xff0c;因为…

buildadmin+tp8表格操作(7.1)表格的事件监听(el-table中的事件)

因为buildAdmin是封装的 el-table的组件&#xff0c;所以el-table中的事件&#xff0c; 也是可以使用的&#xff0c; 两者有几个事件是有共同的&#xff08;比如 双击事件&#xff09;&#xff0c; 这时可以根据自己的需要自行选择 以下代码是 buildadmin 使用 el-table中的事…

光伏拉晶厂RFID智能化生产工序管理

一、项目背景 随着全球能源短缺和气候变暖的挑战日益突显&#xff0c;清洁能源已成为国内能源发展的主要目标之一&#xff0c;作为清洁能源的重要组成部分&#xff0c;光伏行业在过去几十年中取得了巨大的发展&#xff0c;成为我国的战略性新兴产业之一。在智能制造的大环境下…

mybatis使用foreach标签实现union集合操作

最近遇到一个场景就是Java开发中&#xff0c;需要循环多个表名&#xff0c;然后用同样的查询操作分别查表&#xff0c;最终得到N个表中查询的结果集合。在查询内容不一致时Java中跨表查询常用的是遍历表名集合循环查库&#xff0c;比较耗费资源&#xff0c;效率较低。在查询内容…

cadence layout lvs时出现error

Error&#xff1a;Schematic export failed or was cancelled.Please consult the transcript in the viewer window. 解决办法同下&#xff1a; cadence layout lvs时出现error-CSDN博客

BetterDisplay Pro for Mac(显示器校准软件)

BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件&#xff0c;可以帮助用户调整显示器的颜色和亮度&#xff0c;以获得更加真实、清晰和舒适的视觉体验。 以下是BetterDisplay Pro的主要特点&#xff1a; - 显示器校准&#xff1a;可以根据不同的需求和环境…

requests解决HAR支持问题:引入第三方库提升开发效率

关于HAR支持的问题已关闭。HAR&#xff08;HTTP Archive&#xff09;是一种用于存储HTTP请求和响应的标准格式&#xff0c;广泛应用于网络调试和性能优化中。然而&#xff0c;HAR支持的缺失可能会给开发者带来不便&#xff0c;影响其工作效率。 解决方案 为了解决这个问题&…

【2023云栖】大模型驱动DataWorks数据开发治理平台智能化升级

随着大模型掀起AI技术革新浪潮&#xff0c;大数据也进入了与AI深度结合的创新时期。2023年云栖大会上&#xff0c;阿里云DataWorks产品负责人田奇铣发布了DataWorks Copilot、DataWorks AI增强分析、DataWorks湖仓融合数据管理等众多新产品能力&#xff0c;让DataWorks这款已经…

GaussDB SQL基础语法示例-GOTO语句

目录 一、前言 二、在GaussDB数据库中的概念及语法 1、基本概念 2、语法 三、在GaussDB数据库中的基础示例和限制场景说明 1、基础示例 2、限制场景说明 四、小结 一、前言 SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准&#xff08;默认支持SQL2、…

2023年第十三届中国国际储能大会(CIES2023)-核心PPT资料下载

一、峰会简介 本届大会以“推动新型能源体系建设&#xff0c;促进储能产业高质量发展”为主题&#xff0c;为进一步积极探索储能领域新技术、新业态、新模式&#xff0c;推进储能产业上下游供应链深度合作&#xff0c;推动新型储能与新型电力系统协同创新&#xff0c;搭建储能…

(六)、基于 LangChain 实现大模型应用程序开发 | 基于知识库的个性化问答 (文档分割 Splitting)

在上一章中&#xff0c;我们刚刚讨论了如何将文档加载到标准格式中&#xff0c;现在我们要谈论如何将它们分割成较小的块。这听起来可能很简单&#xff0c;但其中有很多微妙之处会对后续工作产生重要影响。 文章目录 1、为什么要做文档分割&#xff1f;2、文档分割方式3、基于…

【OpenCV】仿射变换中cv2.estimateAffine2D 的原理

目录 一、介绍 二、仿射变换矩阵 (M) 1.M中六个元素的说明 2.计算旋转角度 3.M的计算过程 三、输出状态 (inliers) 四、错切参数 1.错切参数的定义 2.错切参数例子 &#xff08;1&#xff09;水平错切 &#xff08;2&#xff09;垂直错切 一、介绍 cv2.estimateAffi…

开源vs闭源大模型如何塑造技术的未来?开源模型的优劣势未来发展方向

开源vs闭源大模型如何塑造技术的未来&#xff1f;开源模型的优劣势&未来发展方向 写在最前面一、开源与闭源&#xff1a;定义与历史背景开源和闭源的定义开源大模型&#xff1a;社区驱动的创新 二、开源和闭源的优劣势比较开源大模型&#xff08;瓶颈&#xff09;数据&…

windows中运行项目中.sh和kaggle安装与配置

在git bash中运行 命令如下&#xff1a; bash download_data.sh 或者 ./download_data.sh如果使用kaggle的数据集&#xff0c;会要求输入用户名和API。 API在这个文件里面&#xff0c;复制过来即可。 安装kaggle pip install kaggle去kaggle官网&#xff0c;点击这里&…

MES集成 | 集成标准不统一?看得帆云iPaaS怎么应对

得帆信息结合自身丰富实施经验及众多实践案例&#xff0c;编写了《得帆云 AIGC低代码PaaS平台系列白皮书——MES集成应用》&#xff0c;希望能为正在使用MES产品的企业数字化转型领导者和IT人员带来一些帮助。 MES是众多大型生产制造型企业在做生产执行管理时会实施的一套系统。…

监控电脑的软件叫什么丨科普小知识

监控电脑的软件叫电脑监控软件。 电脑监控软件是一种可以监控电脑使用情况的软件&#xff0c;通常具有记录屏幕活动、网站访问、聊天记录等功能。 应用场景 1、企业内部管理&#xff1a;企业管理者可以通过监控电脑软件来监视员工的工作活动&#xff0c;以确保员工遵守公司政…

2023年电子工程师大会暨第三届社区年度颁奖活动--【其利天下技术】

华秋电子发烧友将于2023年11月23日在深圳举办一场盛大的技术交流活动&#xff0c;即“2023年电子工程师大会暨第三届社区年度颁奖活动”。本次活动邀请了各大高校教授、企业高管、行业专家和电子工程师们齐聚一堂&#xff0c;围绕“开源硬件”、“OpenHarmony RISC-V”、“工程…

.NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !背景介绍 突然闯到路径搜索算法里…

接口测试基础与接口测试用例设计思路详解

接口测试简介 1.什么是接口 接口就是内部模块对模块&#xff0c;外部系统对其他服务提供的一种可调用或者连接的能力的标准&#xff0c;就好比usb接口&#xff0c;他是系统向外接提供的一种用于物理数据传输的一个接口&#xff0c;当然仅仅是一个接口是不能进行传输的&#x…