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

如何简洁高效的搭建一个SpringCloud2023的maven工程

前言

依赖管理有gradle和maven,在这里选择比较常用和方便的Maven作为工程项目和依赖管理工具来搭建SpringCloud实战工程。主要用到的maven管理方式是多模块和bom依赖管理。

什么是maven的多模块依赖管理

Maven 多模块项目相对于单模块项目而言,依赖是不共享的,但父模块提供了全局共享依赖的功能,可以针对不同模块所需要依赖的包进行分模块引入。具体如下:

  • 所有子模块都依赖的包,如junit可以统一由父模块中的<dependencies>设置依赖。
  • 多个子模块但非全部子模块依赖的包,可以在父模块中的<dependencyManagement>中统一管理依赖版本,再由每个子模块自主引入依赖,这样设置可以达到项目中多个子模块依赖的包版本统一的目的。
  • 单个子模块依赖的包,可以直接交由这个子模块引入即可。但有时候出于对后续可能添加子模块考虑,即使当前只有一个子模块依赖的包,也可以统一交由父模块的<dependencyManagement>统一管理,而如果确认后续不会再加子模块的,可以按前者进行处理。

在父模块中,可通过<properties>统一管理依赖包的版本,让共享包也更加统一管理。

什么是maven的bom依赖管理

Maven 的 BOM(Bill of Materials)依赖管理是一种用于集中管理项目依赖关系和版本的方式,它提供了一种方便的方法来确保多个项目或模块在使用相同依赖时具有一致的版本。

BOM 通常是一个特殊的 Maven POM(Project Object Model)文件,其中定义了项目所需的依赖项及其版本。通过在其他项目中引用这个 BOM,这些项目将自动获取 BOM 中定义的依赖版本,而无需明确指定每个依赖的版本。

这样做的好处是可以减少重复的依赖配置工作,并确保在多个项目中使用相同的依赖版本,从而减少由于依赖不一致导致的问题。此外,BOM 还可以用于管理依赖的升级和版本控制,只需在 BOM 中更新依赖的版本,所有引用该 BOM 的项目都会自动获取最新的版本。

要使用 Maven 的 BOM 依赖管理,通常需要执行以下步骤:

  • 创建或获取一个 BOM POM 文件,其中定义了项目的依赖和版本信息。
  • 在需要使用 BOM 的项目中,通过在<dependencyManagement>部分引用 BOM POM 文件。
  • 在项目的具体依赖部分,可以直接使用 BOM 中定义的依赖,而无需明确指定版本。

组件选型

在“SpringCloud2023最新版本该如何进行组件选型?”一文中已经具体的介绍了SpringCloud的组件对比和选型,具体可以查看合集里面的相关文档。

  • 注册中心(Spring Cloud Zookeeper):负责服务的注册和发现。
  • 网关(Spring Cloud Gateway):作为外部请求的入口,实现路由和负载均衡。
  • 云服务配置(Spring Cloud Config):用于管理服务的配置信息。
  • 熔断(Sentinel):提供熔断器功能,实现服务的限流和降级。
  • 服务追踪(Micrometer Tracing):用于追踪和监控服务的性能和调用情况。
  • 测试集成(JUnit 5 + Spring Boot Test):用于编写和执行单元测试。
  • 远程调用(OpenFeign):用于服务之间的远程调用。
  • 接口文档(springdoc-openapi + openapi3):用于生成和管理 API 的文档。
  • 分布式事务(Seata):用于处理跨多个服务的事务。

版本选择

在“SpringCloud和SpringBoot的版本依赖该怎么选择”一文中已经具体的介绍了SpringCloud的版本如何选择,具体可以查看合集里面的相关文档。

组件版本
jdk17
spring boot3.2.x
spring cloud2023.0.x
spring cloud alibaba2022.0.0.0(还未更新,但是兼容2023)

为什么选择JDK17

选择JDK17的原因如下:

  • JDK 17是 LTS(长期支持版)。
  • JDK 17性能提升不少。
  • 大多数第三方框架和库都已经支持,不会有什么大坑。
  • JDK 17有更多的新特性支持。

Maven工程依赖说明

|-- banana-client1
|-- banana-client2
|-- banana-client3
|-- banana-client4-sentinel
|-- banana-client5-tracing
|-- banana-client6-test
|-- banana-common
|   |-- banana-common-bom
|   `-- banana-common-core
|-- banana-config
|-- banana-gateway
|-- banana-gateway-sso
`-- banana-seata-example
  • 根目录下的pom.xml负责管理整个项目的版本和依赖引入版本管理,以及子模块的管理。
  • banana-common-bom 负责管理整个公共依赖的版本,比如undertow、swagger的版本。
  • banana-common-core 负责管理整个公共组件的引入,比如 hutool、validation、test等。
  • gateway 相关项目为SCG相关工程。
  • client 相关项目为springboot相关工程。
  • 其他工程会在后续的文章说明。欢迎持续关注。

顶级工程pom.xml配置

该maven的pom文件定义了如下内容:

  • Maven 项目的模块列表
  • Maven 项目的属性列表
  • Maven 项目的依赖管理
  • Maven 项目的仓库列表
  • Maven 项目的构建配置
<?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"><!-- Maven 项目的根节点 --><modelVersion>4.0.0</modelVersion><!-- Maven 项目的groupId,在 Maven 仓库中,groupId 必须是唯一的 --><groupId>io.rainforest</groupId><!-- Maven 项目的 artifactId,可以包含多个模块 --><artifactId>banana</artifactId><!-- Maven 项目的版本号 --><version>1.0</version><!-- Maven 项目的打包方式,这里是 pom --><packaging>pom</packaging><!-- Maven 项目的模块列表 --><modules><module>banana-gateway</module><module>banana-config</module><module>banana-common</module><module>banana-client1</module><module>banana-client2</module><module>banana-client3</module><module>banana-client4-sentinel</module><module>banana-client5-tracing</module><module>banana-client6-test</module><module>banana-seata-example</module><module>banana-gateway-sso</module></modules><!-- Maven 项目的属性列表 --><properties><!-- Maven 编译器的 source 版本 --><maven.compiler.source>17</maven.compiler.source><!-- Maven 编译器的 target 版本 --><maven.compiler.target>17</maven.compiler.target><!-- 项目构建的源编码 --><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- Spring Boot 的版本 --><spring-boot.version>3.2.3</spring-boot.version><!-- Spring Cloud 的版本 --><spring-cloud.version>2023.0.0</spring-cloud.version><!-- Spring Cloud Alibaba 的版本 --><spring-cloud-alibaba.version>2022.0.0.0</spring-cloud-alibaba.version></properties><!-- Maven 项目的依赖管理 --><dependencyManagement><!-- Maven 项目的依赖列表 --><dependencies><!-- banana 公共版本定义 --><dependency><groupId>io.rainforest</groupId><artifactId>banana-common-bom</artifactId><version>${project.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Boot 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud 依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- Spring Cloud Alibaba 依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!-- Maven 项目的仓库列表 --><repositories><!-- Maven 中央仓库的配置 --><repository><id>central</id><name>Central Repository</name><url>https://mirrors.huaweicloud.com/repository/maven/</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots></repository></repositories><!-- Maven 项目的构建配置 --><build><!-- Maven 项目构建的最终名称 --><finalName>${project.name}</finalName><!-- Maven 项目的资源配置 --><resources><!-- 资源文件所在的目录 --><resource><directory>src/main/resources</directory><!-- 对资源文件进行过滤 --><filtering>true</filtering></resource></resources><!-- Maven 项目的插件管理 --><pluginManagement><!-- Maven 项目的插件列表 --><plugins><!-- Spring Boot Maven 插件的配置 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><!-- 项目构建的最终名称 --><finalName>${project.build.finalName}</finalName><!-- 启用 Spring Boot 的分层 --><layers><enabled>true</enabled></layers></configuration><!-- Maven 插件的执行配置 --><executions><!-- Maven 插件的执行目标 --><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></pluginManagement></build>
</project>

工程的公用依赖bom配置

该maven的pom文件定义了如下内容:

  • Maven 项目的属性列表,包含版本等信息
  • Maven 项目使用到的依赖版本管理
<?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"><groupId>io.rainforest</groupId><artifactId>banana-common-bom</artifactId><version>1.0</version><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><description>banana-common-bom 公共依赖管理</description><properties><banana.common.version>${project.version}</banana.common.version><spring-boot.version>3.1.3</spring-boot.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><log4j2.version>2.17.1</log4j2.version><maven.compiler.target>17</maven.compiler.target><maven.compiler.source>17</maven.compiler.source><git.commit.plugin>4.9.9</git.commit.plugin><spring.checkstyle.plugin>0.0.39</spring.checkstyle.plugin><fastjson.version>1.2.83</fastjson.version><springdoc.version>2.1.0</springdoc.version><swagger.core.version>2.2.14</swagger.core.version><mybatis-plus.version>3.5.3.2</mybatis-plus.version><mysql.version>8.0.33</mysql.version><dynamic-ds.version>4.1.3</dynamic-ds.version><seata.version>1.6.1</seata.version><excel.version>3.1.0</excel.version><asm.version>7.1</asm.version><sms.version>3.0.0</sms.version><jaxb.version>2.3.5</jaxb.version><shardingsphere.version>5.4.0</shardingsphere.version><hutool.version>5.8.21</hutool.version><mica.version>3.0.8</mica.version><sentinel.version>1.8.4</sentinel.version></properties><!-- 定义全局jar版本,模块使用需要再次引入但不用写版本号--><dependencyManagement><dependencies><dependency><groupId>io.rainforest</groupId><artifactId>banana-common-core</artifactId><version>${banana.common.version}</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>${mysql.version}</version></dependency><!--springdoc --><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webflux-ui</artifactId><version>${springdoc.version}</version></dependency><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-api</artifactId><version>${springdoc.version}</version></dependency><dependency><groupId>io.swagger.core.v3</groupId><artifactId>swagger-annotations-jakarta</artifactId><version>${swagger.core.version}</version></dependency><!--fastjson 版本--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><!-- 多数据源依赖 --><dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot3-starter</artifactId><version>${dynamic-ds.version}</version></dependency><!--  阿里云短信下发 --><dependency><groupId>io.springboot.sms</groupId><artifactId>aliyun-sms-spring-boot-starter</artifactId><version>${sms.version}</version></dependency><!--  seata kryo 序列化--><dependency><groupId>io.seata</groupId><artifactId>seata-serializer-kryo</artifactId><version>${seata.version}</version></dependency><!--orm 相关--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>${mybatis-plus.version}</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-annotation</artifactId><version>${mybatis-plus.version}</version></dependency><!--hutool bom 工具类--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-bom</artifactId><version>${hutool.version}</version><type>pom</type><scope>import</scope></dependency><!--mica bom 工具类--><dependency><groupId>net.dreamlu</groupId><artifactId>mica-bom</artifactId><version>${mica.version}</version><type>pom</type><scope>import</scope></dependency><!--web 模块--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${spring-boot.version}</version><exclusions><!--排除tomcat依赖--><exclusion><artifactId>spring-boot-starter-tomcat</artifactId><groupId>org.springframework.boot</groupId></exclusion></exclusions></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.3.0</version></dependency></dependencies></dependencyManagement><build><plugins><!--打包jar 与git commit 关联插件--><plugin><groupId>io.github.git-commit-id</groupId><artifactId>git-commit-id-maven-plugin</artifactId><version>${git.commit.plugin}</version></plugin><!--代码格式插件,默认使用spring 规则--><plugin><groupId>io.spring.javaformat</groupId><artifactId>spring-javaformat-maven-plugin</artifactId><version>${spring.checkstyle.plugin}</version></plugin></plugins></build></project>

源码信息

和“SpringCloud实战”对应的源码信息如下:

  • github https://github.com/r0ad/spring-cloud-example
  • gitee https://gitee.com/r0ad/spring-cloud-example

关于作者

来自一线全栈程序员nine的八年探索与实践,持续迭代中。欢迎关注“雨林寻北”或添加个人卫星codetrend(备注技术)。

相关文章:

如何简洁高效的搭建一个SpringCloud2023的maven工程

前言 依赖管理有gradle和maven&#xff0c;在这里选择比较常用和方便的Maven作为工程项目和依赖管理工具来搭建SpringCloud实战工程。主要用到的maven管理方式是多模块和bom依赖管理。 什么是maven的多模块依赖管理 Maven 多模块项目相对于单模块项目而言&#xff0c;依赖是…...

uniapp直接连接wifi(含有ios和安卓的注意事项)

前言 小程序中直接连接wifi-----微信小程序 代码 启动 //启动wifistartWifi() {return new Promise((resolve, reject) > {uni.startWifi({success: (res) > {console.log(启动wifi 成功, res)resolve(true)},fail: (err) > {console.error(启动wifi 失败, err)uni.s…...

一. Ubuntu入门

目录 一. Ubuntu系统安装 1. 安装虚拟机软件VMware 2. 安装Ubuntu操作系统 二. Ubuntu系统入门 1. Shell操作 1.1 Shell 简介 1.2 Shell基本操作 1.3 常用Shell命令 (1) 目录信息查看命令ls (2) 目录切换命令cd (3) 当前路径显示命令pwd (4) 系统信息查看命令uname…...

rk3568 Android12 增加支持 ntfs 格式

rk3568 Android12 增加支持 ntfs 格式 Windows平台上可移动硬盘支持 NTFS,FAT32,exFAT三种格式。Fat32文件格式是一种通用格式,任何USB存储设备都会预装该文件系统,可以在任何操作系统平台上使用。最主要的缺陷是只支持最大单文件大小容量为4GB,因此日常使用没有问题,只有…...

【MapReduce】02.Hadoop序列化

实现bean对象序列化步骤 自定义bean对象实现序列化接口。 1&#xff09;必须实现Writable接口 2&#xff09;反序列化时&#xff0c;需要反射调用空参构造函数&#xff0c;所以必须有空参构造 public FlowBean(){super(); } 3&#xff09;重写序列化方法 Override public …...

【Claude 3】一文谈谈Anthropic(Claude) 亚马逊云科技(Bedrock)的因缘际会

文章目录 前言1. Anthropic的诞生2. Anthropic的“代表作”——Claude 3的“三驾马车”3. 亚马逊云科技介绍4. 强大的全托管服务平台——Amazon Bedrock5. 亚马逊云科技(AWS)和Anthropic的联系6. Claude 3模型与Bedrock托管平台的关系7. Clude 3限时体验入口分享【⚠️截止3月1…...

c#开发100问?

什么是C#&#xff1f;C#是由谁开发的&#xff1f;C#与Java之间有哪些相似之处&#xff1f;C#与C有哪些不同之处&#xff1f;C#的主要特性是什么&#xff1f;请解释C#中的类和对象。C#中的命名空间是什么&#xff1f;什么是C#中的属性和字段&#xff1f;请解释C#中的继承和多态性…...

回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测

回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测 目录 回归预测 | Matlab实现BiTCN-BiGRU-Attention双向时间卷积双向门控循环单元融合注意力机制多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.M…...

SpringCloud微服务-RabbitMQ快速入门

文章目录 RabbitMQ快速入门1、什么是MQ&#xff1f;2、RabbitMQ概述3、RabbitMQ的结构和概念4、常见消息模型5、HelloWorld RabbitMQ快速入门 1、什么是MQ&#xff1f; MQ &#xff08;MessageQueue&#xff09;&#xff0c;中文是消息队列&#xff0c;字面来看就是存放消息的…...

OpenCV学习笔记(五)——图片的缩放、旋转、平移、裁剪以及翻转操作

目录 图像的缩放 图像的平移 图像的旋转 图像的裁剪 图像的翻转 图像的缩放 OpenCV中使用cv2.resize()函数进行缩放&#xff0c;格式为&#xff1a; resize_imagecv2.resize(image,(new_w,new_h),插值选项) 其中image代表的是需要缩放的对象&#xff0c;(new_w,new_h)表…...

c++ 串口通信库

根据资料整理的串口通信库&#xff0c;封装成为了动态库&#xff0c;使用者只需要调用接口即可 使用实例如下&#xff1a; //接受数据 void CSerialPortCommonLibDemoDlg::OnReceive() { char * str NULL; str new char[256]; _port.readAllData(str); CString s…...

数据结构之单链表及其实现!

目录 ​编辑 1. 顺序表的问题及思考 2.链表的概念结构和分类 2.1 概念及结构 2.2 分类 3. 单链表的实现 3.1 新节点的创建 3.2 打印单链表 3.3 头插 3.4 头删 3.5 尾插 3.6 尾删 3.7 查找元素X 3.8 在pos位置修改 3.9 在任意位置之前插入 3.10 在任意位置删除…...

Ubuntu 22.04修改静态ip

1. 备份原网络配置文件 # 配置文件名称因机器设置有异 cd /etc/netplan cp 01-network-config.yaml 01-network-config.yaml.bak# 文件内容如下 network:version: 2renderer: NetworkManager2. 修改配置文件 使用 ipconfig 命令查看网络信息&#xff0c;ip addr 命令也可 我这…...

kali当中不同的python版本切换(超简单)

kali当中本身就是自带两个python版本的 配置 update-alternatives --install /usr/bin/python python /usr/bin/python2 100 update-alternatives --install /usr/bin/python python /usr/bin/python3 150 切换版本 update-alternatives --config python 0 1 2编号选择一个即可…...

MongoDB聚合运算符;$dateToString

$dateToString聚合运算符按用户指定的格式将日期对象转为字符串。 语法 { $dateToString: {date: <dateExpression>,format: <formatString>,timezone: <tzExpression>,onNull: <expression> } }字段说明&#xff1a; 字段是否必须描述date是<da…...

【开源】SpringBoot框架开发教学资源共享平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…...

python基础——条件判断和循环【if,while,for,range】

&#x1f4dd;前言&#xff1a; 这篇文章主要讲解一下条件判断语句if和循环语句while&#xff0c;for在python中需要注意的地方。 建议已有一定了解&#xff08;对语句的执行逻辑清楚&#xff09;的读者观看&#xff0c;如果对条件判断和循环的执行逻辑不太清楚&#xff0c;也可…...

Pytorch 复习总结 6

Pytorch 复习总结&#xff0c;仅供笔者使用&#xff0c;参考教材&#xff1a; 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为&#xff1a;Pytorch 计算机视觉。 本文先介绍了计算机视觉中两种常见的改进模型泛化性能的方法&#xff1a…...

借助 Terraform 功能协调部署 CI/CD 流水线-Part 1

在当今快节奏的开发环境中&#xff0c;实现无缝、稳健的 CI/CD 流水线对于交付高质量软件至关重要。在本文中&#xff0c;我们将向您介绍使用 Bitbucket Pipeline、ArgoCD GitOps 和 AWS EKS 设置部署的步骤&#xff0c;所有步骤都将利用 Terraform 的强大功能进行编排。在Part…...

云原生基础知识:容器技术的历史

容器化的定义&#xff1a; 容器化是一种轻量级的虚拟化技术&#xff0c;将应用程序及其所有依赖项&#xff08;包括运行时、系统工具、系统库等&#xff09;打包到一个称为容器的单独单元中。容器提供了一种隔离的执行环境&#xff0c;使得应用程序可以在不同的环境中运行&…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

学校招生小程序源码介绍

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

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

AGain DB和倍数增益的关系

我在设置一款索尼CMOS芯片时&#xff0c;Again增益0db变化为6DB&#xff0c;画面的变化只有2倍DN的增益&#xff0c;比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析&#xff1a; 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...