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

maven之父子工程版本控制案例实战,及拓展groupId和artifactId的含义

<parent>标签

用于父子工程项目,什么是父子工程?

顾名思义,maven父子项目是一个有一个父项目,父项目下面又有很多子项目的maven工程,当然,子项目下面还可以添加子项目,从而形成一个树形的结构。那么,这么做有什么好处呢?有以下两点:

  • 依赖传递
  • 打包方便

父工程package 需要指定pom
子工程需要声明parent,否则无法使用父pom的依赖

<dependency> 标签

导入依赖
和dependencyManagement 一起出现,指定的版本优先级更高,通常出现在父pom

<parent> & <dependency>区别

通常parent用于做结构管理,声明子工程继承父工程的
A依赖B C继承B

A = B的依赖 + B自定义class
C = B的依赖
image

<dependencyManagement> 标签

版本控制,只声明版本,不进行依赖导入

<modules> 标签

执定子工程,如果不指定,不能识别子工程

版本控制优先级

子项目的版本优先更高
子项目 dependency
子项目 dependencyManagement
父项目 dependency
父项目 dependencyManagement

如果出现同一个pom,多个不同版本的相同依赖,最下方优先级最高

实战案例:

例如我们有如下项目目录
在这里插入图片描述

最外层的pom.xml即为父工程,一般用于控制子工程版本

父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>cn.wolfcode</groupId><artifactId>caro2o</artifactId><version>3.8.3</version><name>caro2o</name><url>http://www.ruoyi.vip</url><description>e店邦o2o平台管理系统</description><properties><caro2o.version>3.8.3</caro2o.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><maven-jar-plugin.version>3.1.1</maven-jar-plugin.version><druid.version>1.2.11</druid.version><bitwalker.version>1.21</bitwalker.version><swagger.version>3.0.0</swagger.version><kaptcha.version>2.3.2</kaptcha.version><mybatis-spring-boot.version>2.2.2</mybatis-spring-boot.version><pagehelper.boot.version>1.4.1</pagehelper.boot.version><fastjson.version>2.0.8</fastjson.version><oshi.version>6.1.6</oshi.version><commons.io.version>2.11.0</commons.io.version><commons.fileupload.version>1.4</commons.fileupload.version><commons.collections.version>3.2.2</commons.collections.version><poi.version>4.1.2</poi.version><velocity.version>2.3</velocity.version><jwt.version>0.9.1</jwt.version></properties><!-- 依赖声明 --><dependencyManagement><dependencies><!-- SpringBoot的依赖配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.5.14</version><type>pom</type><scope>import</scope></dependency><!-- 阿里数据库连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid.version}</version></dependency><!-- 解析客户端操作系统、浏览器等 --><dependency><groupId>eu.bitwalker</groupId><artifactId>UserAgentUtils</artifactId><version>${bitwalker.version}</version></dependency><!-- SpringBoot集成mybatis框架 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis-spring-boot.version}</version></dependency><!-- pagehelper 分页插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pagehelper.boot.version}</version></dependency><!-- 获取系统信息 --><dependency><groupId>com.github.oshi</groupId><artifactId>oshi-core</artifactId><version>${oshi.version}</version></dependency><!-- Swagger3依赖 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>${swagger.version}</version><exclusions><exclusion><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId></exclusion></exclusions></dependency><!-- io常用工具类 --><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>${commons.io.version}</version></dependency><!-- 文件上传工具类 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>${commons.fileupload.version}</version></dependency><!-- excel工具 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>${poi.version}</version></dependency><!-- velocity代码生成使用模板 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>${velocity.version}</version></dependency><!-- collections工具类 --><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>${commons.collections.version}</version></dependency><!-- 阿里JSON解析器 --><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>${fastjson.version}</version></dependency><!-- Token生成与解析--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>${jwt.version}</version></dependency><!-- 验证码 --><dependency><groupId>com.github.penggle</groupId><artifactId>kaptcha</artifactId><version>${kaptcha.version}</version></dependency><!-- 定时任务--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-quartz</artifactId><version>${caro2o.version}</version></dependency><!-- 代码生成--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-generator</artifactId><version>${caro2o.version}</version></dependency><!-- 核心模块--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-framework</artifactId><version>${caro2o.version}</version></dependency><!-- 系统模块--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-system</artifactId><version>${caro2o.version}</version></dependency><!-- 通用工具--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-common</artifactId><version>${caro2o.version}</version></dependency><!-- 业务模块--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-business</artifactId><version>${caro2o.version}</version></dependency></dependencies></dependencyManagement><modules><module>caro2o-admin</module><module>caro2o-framework</module><module>caro2o-system</module><module>caro2o-quartz</module><module>caro2o-generator</module><module>caro2o-common</module><module>caro2o-business</module></modules><packaging>pom</packaging><dependencies></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin></plugins></build><repositories><repository><id>public</id><name>aliyun nexus</name><url>https://maven.aliyun.com/repository/public</url><releases><enabled>true</enabled></releases></repository></repositories><pluginRepositories><pluginRepository><id>public</id><name>aliyun nexus</name><url>https://maven.aliyun.com/repository/public</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories></project>

子项目迭代时一般是以相同版本迭代,所以用<caro2o.version>3.8.3</caro2o.version>来统一控制版本

写在<dependencyManagement>标签中的依赖为子项目可选择加载的依赖,若某子项目要加载该依赖则在自己的pom.xml中的dependencies里添加即可,不用再写版本号version,因为都交由父项目统一管理了,而这就避免了不同子项目引用相同依赖时因版本不同而产生冲突的问题。

写在<dependencies>标签中的依赖为子项目必须加载的依赖,下略。


服务启动入口子项目caro2o-admin的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"><parent><artifactId>caro2o</artifactId><groupId>cn.wolfcode</groupId><version>3.8.3</version></parent><modelVersion>4.0.0</modelVersion><packaging>jar</packaging><artifactId>caro2o-admin</artifactId><description>web服务入口</description><dependencies><!-- spring-boot-devtools --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> <!-- 表示依赖不会传递 --></dependency><!-- swagger3--><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId></dependency><!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 --><dependency><groupId>io.swagger</groupId><artifactId>swagger-models</artifactId><version>1.6.2</version></dependency><!-- Mysql驱动包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- 核心模块--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-framework</artifactId></dependency><!-- 定时任务--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-quartz</artifactId></dependency><!-- 代码生成--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-generator</artifactId></dependency><!-- 业务模块--><dependency><groupId>cn.wolfcode</groupId><artifactId>caro2o-business</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.1.1.RELEASE</version><configuration><fork>true</fork> <!-- 如果没有该配置,devtools不会生效 --></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin>   <groupId>org.apache.maven.plugins</groupId>   <artifactId>maven-war-plugin</artifactId>   <version>3.1.0</version>   <configuration><failOnMissingWebXml>false</failOnMissingWebXml><warName>${project.artifactId}</warName></configuration>   </plugin>   </plugins><finalName>${project.artifactId}</finalName></build></project>

注意:

在这里插入图片描述

比如该用若依框架搭建的demo项目,我要新增一个名为caro2o-business的业务子项目,则需要将该业务子项目作为模块依赖添加到服务启动入口子项目caro2o-admin的pom.xml里,否则服务启动后admin没加载到business模块内的代码,就会出现404或500等一系列错误。

在这里插入图片描述

然后在业务子项目的pom.xml里添加工具子项目等不同模块的依赖,如:

在这里插入图片描述
因为父项目已经控制版本号了,所以这里可以不用再写version。在图中的情况,若整个项目整体迭代而在父项目的pom.xml中升级更改了统一版本号,则会有报错的可能,因为Maven中首先取的是子项目自己pom.xml里的依赖版本号,就会导致引用caro2o-system时和别的子项目版本出现冲突。


拓展:

maven项目的groupId和artifactId什么意思?

首先要知道groupId和artifactId的存在是为了定位到你的项目,所以它们充当着坐标的角色。
groupId:group意思为组,所以理解为是组织Id,也是公司Id,通常它的写法与公司域名类似。一般分三段,即“域.公司名称.子项目”,域指org、com、cn
等,类似计算机网络里学过的,cn指china,com商业,org非盈利组织。
artifactId:即一个具体的项目,命名方式自己决定。

举个某马大型商城项目结构为例,该项目采用了微服务架构,所以使用了聚合方式,即一个大项目下几个小项目(这样是为了便于版本管理):

在这里插入图片描述
例如:
< groupId>com.leyou.parent< /groupId>,其中com为商业标识,leyou为这个乐优商城项目的公司名称,parent是项目名称,但是因为这个项目采用了聚合方式,下面还有许多项目,这个作为最顶层容器,所以起名parent。 < artifactId>leyou</ artifactId >代表这个项目的总名称为leyou。
其下面的子项目命名为 < groupId>com.leyou.user</ groupId>,前两段域和公司名都相同,只是项目那儿放的这个具体的子项目名称。
< artifactId>leyou-user< /artifactId>使用的leyou-user表示该项目是leyou项目下的user子项目,这种方式结构清晰易懂。
采用这种命名后,项目内部结构通常要相对应。
例如:
在这里插入图片描述

这个项目是大项目下每个项目作为一个单独的服务,对于那些可能被其他服务调用的服务,可以再拆分为两个,例如,这里子项目leyou-item因为为被其他服务调用,所以又才分为了interface和service两个子项目,interface对外提供服务调用,service作具体的业务操作。
在这里插入图片描述

相关文章:

maven之父子工程版本控制案例实战,及拓展groupId和artifactId的含义

<parent>标签 用于父子工程项目&#xff0c;什么是父子工程&#xff1f; 顾名思义&#xff0c;maven父子项目是一个有一个父项目&#xff0c;父项目下面又有很多子项目的maven工程&#xff0c;当然&#xff0c;子项目下面还可以添加子项目&#xff0c;从而形成一个树形…...

100量子比特启动实用化算力标准!玻色量子重磅发布相干光量子计算机

2023年5月16日&#xff0c;北京玻色量子科技有限公司&#xff08;以下简称“玻色量子”&#xff09;在北京正大中心成功召开了2023年首场新品发布会&#xff0c;重磅发布了自研100量子比特相干光量子计算机——“天工量子大脑”。 就在3个月前&#xff0c;因“天工量子大脑”在…...

JAVA基础(JAVA SE)学习笔记(十)多线程

前言 1. 学习视频&#xff1a; 尚硅谷Java零基础全套视频教程(宋红康2023版&#xff0c;java入门自学必备)_哔哩哔哩_bilibili 2023最新Java学习路线 - 哔哩哔哩 第三阶段&#xff1a;Java高级应用 9.异常处理 10.多线程 11.常用类和基础API 12.集合框架 13.泛型 14…...

ChatGPT参数只有200亿?扩散代码模型,意外泄露

微软的研究部门发布了一篇关于预训练扩散代码模型CodeFusion的论文。在展示代码生成任务的基线数据对比时&#xff0c;发现了一个有趣的事情&#xff0c;ChatGPT&#xff08;gpt-3.5-turbo&#xff09;的参数只有200亿。 要知道&#xff0c;gpt-3.5-turbo是OpenAI中应用最多、…...

VR虚拟仿真教学在建筑学课堂中的应用

1. 增强真实感&#xff1a;VR技术能创造出近乎真实的虚拟环境&#xff0c;使学生仿佛置身其中&#xff0c;增强他们的感官体验。 2. 打破空间限制&#xff1a;VR教学可以打破时间和空间的限制&#xff0c;学生可以在任何时间、任何地点进行学习&#xff0c;无需担心课堂位置的…...

竞赛 深度学习实现行人重识别 - python opencv yolo Reid

文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习的行人重识别算法研究与实现 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c…...

当代都市的时尚先锋:气膜建筑的魅力

当代城市的崛起如一部快速奔腾的时光流。在这个光速发展的都市中&#xff0c;时间被看作珍贵的黄金&#xff0c;而效率被视为无价的生命。而在这个节奏日益加快的现代都市背后&#xff0c;一个独特的“神器”——气膜建筑&#xff0c;悄然崭露头角&#xff0c;成为城市发展的领…...

品牌加盟商做信息展示预约小程序的效果如何

很多行业都有中部或头部品牌&#xff0c;对实体品牌企业来说想要快速高效发展&#xff0c;除了多地直营店外还需要招募加盟商进而提升生意营收。 因此线上渠道变得尤为重要&#xff0c;除了网站外&#xff0c;小程序是连接多平台生态很好的工具&#xff0c;随时打开、直接触达…...

delphi 11.3 FastReport 多设备跨平台 打印之解决方法

以下能WINDOWS10 DELPHI 11.3 FastReport6.0上顺利通过 FastReport6.2对Multi-Device Application应用的支持不够友好&#xff0c;如下图&#xff1b;在palette FastReport6.0才出现几个制件。 非Multi-Device Application应用时是一大堆&#xff1b; 非Multi-Device Appl…...

配置vue 环境

一、安装Node.js及配置环境 环境变量配置 第一步&#xff1a;“此电脑”-右键-“属性”-“高级系统设置”-“高级”-“环境变量” 第二步&#xff08;我的为&#xff1a;C:\Program Files\nodejs &#xff09;&#xff0c;然后编辑path&#xff0c;新建&#xff0c;为&#xf…...

Visio文件编辑查看工具Visio Viewer for Mac

Visio Viewer mac版是一款Visio文件查看工具&#xff0c;可以使用本程序打开所有的visio文件数据&#xff0c;支持多种语言环境&#xff0c;可以对visio文件进行编辑、跳转参数等设置。 Visio Viewer for Mac可以打开和查看Visio文件&#xff08;.vsd、.vdx和.vsdm文件&#x…...

现在软文发布平台都有哪些?如何在正规媒体发稿?

近年来,随着广告行业竞争愈加激烈,越来越多的企业开始注重软文宣传。软文推广平台是企业在网络上发布软文、传播信息和推广产品的重要工具。 媒介易软文平台介绍更好的品牌宣传和市场推广&#xff1a;软文推广发稿有哪些平台&#xff0c; 软文发稿好方法&#xff1f;软文不仅能…...

【卷积神经网络】YOLO 算法原理

在计算机视觉领域中&#xff0c;目标检测&#xff08;Object Detection&#xff09;是一个具有挑战性且重要的新兴研究方向。目标检测不仅要预测图片中是否包含待检测的目标&#xff0c;还需要在图片中指出它们的位置。2015 年&#xff0c;Joseph Redmon, Santosh Divvala 等人…...

云计算与ai人工智能对高防cdn的发展

高防CDN&#xff08;Content Delivery Network&#xff09;作为网络安全领域的一项关键技术&#xff0c;致力于保护在线内容免受各种网络攻击&#xff0c;包括分布式拒绝服务攻击&#xff08;DDoS&#xff09;等。然而&#xff0c;随着人工智能&#xff08;AI&#xff09;和大数…...

Web3时代:探索DAO的未来之路

Web3 的兴起不仅代表着技术进步&#xff0c;更是对人类协作、创新和价值塑造方式的一次重大思考。在 Web3 时代&#xff0c;社区不再仅仅是共同兴趣的聚集点&#xff0c;而变成了一个价值交流和创新的平台。 去中心化&#xff1a;超越技术的革命 去中心化不仅仅是 Web3 的技术…...

odbcinst文件

odbcinst文件是ODBC&#xff08;Open Database Connectivity&#xff09;驱动程序管理器的配置文件。ODBC是一种标准的数据库访问接口&#xff0c;允许应用程序通过统一的方式连接和访问不同类型的数据库。 odbcinst文件通常位于操作系统的特定目录中&#xff0c;并且用于定义…...

(CQUPT 的某数据结构homework)

CQUPT 的某数据结构homework 基于线性表的图书信息管理基于栈的算术表达式求值基于字符串模式匹配算法的病毒感染检测问题 基于哈夫曼树的数据压缩算法基于二叉树的表达式求值算法基于 Dijsktra 算法的最短路基于广度优先搜索的六度空间排序算法的实现与分析 基于线性表的图书信…...

Android页面周期、页面跳转

1.什么是Activity&#xff1f; Activity是Android的四大组件之一&#xff0c;它是一种可以包含用户界面的组件&#xff0c;主要用于和用户进行交互。Activity用于显示用户界面&#xff0c;用户通过Activity交互完成相关操作&#xff0c;一个APP允许有多个Activity。 2.Activi…...

腾讯云轻量应用镜像、系统镜像、Docker基础镜像、自定义镜像和共享镜像介绍

腾讯云轻量应用服务器镜像类型分为应用镜像、系统镜像、Docker基础镜像、自定义镜像和共享镜像&#xff0c;腾讯云百科txybk.com来详细说下不同镜像类型说明和详细介绍&#xff1a; 轻量应用服务器镜像类型说明 腾讯云轻量应用服务器 应用镜像&#xff1a;独有的应用镜像除了包…...

YOLOv8芒果独家首发 | 改进新主干:改进版目标检测新范式骨干PPHGNetv2,百度出品,提升YOLOv8检测能力

💡本篇内容:YOLOv8改进新主干:目标检测新范式骨干PPHGNetv2改进版,百度出品,提升YOLOv8检测能力 💡🚀🚀🚀本博客 改进源代码改进 适用于 YOLOv8 按步骤操作运行改进后的代码即可 💡本文提出改进 原创 方式:二次创新,YOLOv8专属,充分结合YOLOv8和 PPHGNetv…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

[USACO23FEB] Bakery S

题目描述 Bessie 开了一家面包店! 在她的面包店里&#xff0c;Bessie 有一个烤箱&#xff0c;可以在 t C t_C tC​ 的时间内生产一块饼干或在 t M t_M tM​ 单位时间内生产一块松糕。 ( 1 ≤ t C , t M ≤ 10 9 ) (1 \le t_C,t_M \le 10^9) (1≤tC​,tM​≤109)。由于空间…...