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

springboot gradle 多项目创建

    • 1.背景
    • 2.创建父项目
    • 3.配置gradlew
    • 4.创建子项目

1.背景

1.用IDE创建一个父项目(school_project),两个子项目(student_project,teacher_project)。子项目是两个springboot工程
2.使用gradle kotlin进行管理,gradle版本8.11.1
3.使用java17
4.springboot版本3.4.0

下面这个是官网的图,一个project和两个a,b子项目,本文实现的也是这个项目结构
在这里插入图片描述

2.创建父项目

创建一个java项目
在这里插入图片描述
注意这里gradle Wrapper随便选一个版本,后面改为8.11.1

创建完后,删除src目录,src是放代码的地方,父项目不需要,代码在子项目中

下面修改build.gradle.kts和setting.gardle.kts这两个文件,这两个文件也是父项目统一配置子项目的地方。
修改build.gradle.kts文件,我的如下:

plugins {id("org.springframework.boot") version "3.4.0"id("io.spring.dependency-management") version "1.1.6"
}group = "org.example"
version = "1.0-SNAPSHOT"

主要是指定springboot插件的版本是3.4.0,在子项目中引用插件时就不用指定版本了

修改settins.gradle.kts
我的文件如下:

pluginManagement {repositories {maven { url=uri ("https://www.jitpack.io")}maven { url=uri ("https://maven.aliyun.com/repository/releases")}maven { url=uri ("https://maven.aliyun.com/repository/google")}maven { url=uri ("https://maven.aliyun.com/repository/central")}maven { url=uri ("https://maven.aliyun.com/repository/gradle-plugin")}maven { url=uri ("https://maven.aliyun.com/repository/public")}google()mavenCentral()gradlePluginPortal()}
}
dependencyResolutionManagement {repositories {maven { url=uri ("https://www.jitpack.io")}maven { url=uri ("https://maven.aliyun.com/repository/releases")}maven { url=uri ("https://maven.aliyun.com/repository/google")}maven { url=uri ("https://maven.aliyun.com/repository/central")}maven { url=uri ("https://maven.aliyun.com/repository/gradle-plugin")}maven { url=uri ("https://maven.aliyun.com/repository/public")}google()mavenCentral()}
}rootProject.name = "school_project"

1.pluginManagement ,是统一的插件地址
2.dependencyResolutionManagement ,是统一的依赖下载地址。

父项目的根目录下的这个settins.gradle.kts文件是所有项目的统一配置的地方,我这里配置了插件和依赖下载的地址,这样后面在两个子项目(student和teacher)中就不用配置了,这也是父项目的意义所在:统一管理配置。
改好后,点gradle的这个图标,会下载相关依赖,看看有没有问题
在这里插入图片描述
小结:

  • setting.gardle.kts这个文件在多项目中,官方建议只能存在于父项目中。

3.配置gradlew

修改文件gradle-wrapper.properties,主要把distributionUrl改成我们想要的版本8.11.1,文件内容是:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.11.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

在这里插入图片描述

注意这个地址distributionUrl,加速下载,最好改国内地址,https后面还有个\

然后在settings里面改Gradle配置:
1.Gradle user home:选本地磁盘目录,所有java依赖jar包都会下载在这个目录,一般自己电脑上所有gradle项目都共用这个目录,相当于maven的repository目录。
2.Distribution: 选Wrapper
在这里插入图片描述

如果在自己电脑上安装了gradle,也不需要配置gradlew。上面的Distribution选本机的gradle就行了。如下图。
在这里插入图片描述
之所以配置gradlew,好处是项目可以拥有自己独立的gradle版本(和本地电脑上安装的版本不会有冲突),上面的文件gradle-wrapper.properties,当别人通过git获取到项目代码时,也会根据这个文件自动下载配置gradle(本地电脑不必安装gradle)。

4.创建子项目

在这里插入图片描述
点父项目右击,创建new module
在这里插入图片描述
这一步先随便选一个spingboot版本,后面会删掉
在这里插入图片描述

创建完后,删除下面红框中的目录和文件,只留下src目录和build.gradle.kts文件
在这里插入图片描述
在build.gradle.kts文件内容改成下面这个:
注意plugins里面不需要加版本号,在父项目的build.gradle.kts文件中加了。

plugins {javaid("org.springframework.boot")id("io.spring.dependency-management")
}group = "org.example"
version = "0.0.1-SNAPSHOT"dependencies {implementation("org.springframework.boot:spring-boot-starter")implementation("org.springframework.boot:spring-boot-starter-web")testImplementation("org.springframework.boot:spring-boot-starter-test")testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}

创建完成后,在父项目的settings.gradle.kts文件中,加上了include(“student_project”),
比较奇怪这个include(“student_project”)应该是自动加好的,但是没有加,我就手动加了一下。(可能是创建子项目时,选springboot有bug吧,我测试了一下,如果子项目选java,就会自动加上这个)
在这里插入图片描述

然后点gradle加载时,会报错
Task ‘wrapper’ not found in project ‘:student_project’.
打开“File-Project Structure",发现Modules里面有一个和"school_project"平级的“student_project",把这个"student_project"删掉。
在这里插入图片描述
就个错应该和前面没有自动加这个include(“student_project”)问题一样,导致没有把student识别为school的子项目,当作了平级的。

再原样创建一个子项目teacher_project,最终项目结构如下:
注意下面Gradle窗口中student和teacher在school里面,如果有和school同级的就删掉。
在这里插入图片描述

相关文章:

springboot gradle 多项目创建

1.背景2.创建父项目3.配置gradlew4.创建子项目 1.背景 1.用IDE创建一个父项目(school_project),两个子项目(student_project,teacher_project)。子项目是两个springboot工程 2.使用gradle kotlin进行管理,…...

Protocol Buffers在MCU上的nanopb介绍及使用详解

在嵌入式系统和资源受限的环境中,传统的Protocol Buffers 可能显得过于庞大。因此,nanopb 应运而生,它是一个轻量级的 Protocol Buffers 生成器,专为嵌入式系统设计c语言设计。本文将介绍如何安装和使用 nanopb,以及通…...

leetcode日记(74)扰乱字符串

很有难度的一题,一开始真的绕了很多思维上的弯路。 最开始的想法是递归,看到题目的时候想到动态规划但是完全没有思路应该怎么用,结果确实是递归动态规划。 最开始的想法是构建树,每一层包含这一步划分的方法(实际会…...

Blazor-根级别级联值

根级别级联值注册 using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting;namespace BlazorApp1 {public class Program{public static async Task Main(string[] args){var builder WebAssemblyHostBuilder.CreateDefault…...

懒加载能够解决Spring循环依赖吗

懒加载本身并不能直接解决 Spring 循环依赖问题,但它可以在一定程度上缓解或绕过循环依赖带来的问题,下面详细分析: 1. 什么是 Spring 循环依赖 循环依赖指的是两个或多个 Bean 之间相互依赖,形成一个闭环。例如,Bea…...

Matlab中使用GUIDE工具开发图形用户界面(GUI)

文章目录 1. 初识GUIDE工具1.1 .m 和 .fig的区别和联系1.2 GUIDE工具的详细介绍1.3 GUI控件的属性1.4 自动生成的 .m 文件1.5 回调函数 2. GUI中常见的函数2.1 get 和 set 函数2.2 handles.Tag2.3 OpeningFcn 和 OutputFcn2.4 Callback2.5 CreateFcn 和 DeleteFcn2.6 ButtonDow…...

[通俗易懂C++]:引用返回和地址返回

在之前的文章中已经提到过,当使用按值传递时会创建参数的一个副本到函数中。对于基本类型(复制成本较低),这是可以的。但对于类类型(如 std::string ),复制通常成本较高。我们可以通过使用(const)引用传递(或按地址传递)来避免进行昂贵的复制。 这篇文章主要介绍一些…...

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释

基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释,结合理论与实际操作说明: 一、三级视图核心概念 数据库的三级视图是 ANSI/SPARC 体系结构的核心思想,MySQL 的实现逻辑如下: …...

LLM - Attention Is All You Need 的理解

一:概述 当前主流的序列转换(sequence transduction)模型主要基于复杂的循环神经网络(Recurrent Neural Networks, RNNs)或卷积神经网络(Convolutional Neural Networks, CNNs),这些模型通常包含编码器(encoder)和解码器(decoder)。 性能最优的模型通常通过“ 注意…...

究竟什么是AI提示词?深入解析与实战应用

随着人工智能技术的飞速发展,AI提示词(AI Prompt)逐渐成为自然语言处理(NLP)领域的热门话题。无论是GPT-3、ChatGPT还是其他大型语言模型,提示词都扮演着至关重要的角色。那么,究竟什么是AI提示…...

deep-research开源框架 Agentic Reasoning

Agentic-Reasoning是由牛津大学团队开源的推理框架. 该框架在GPQA博士级科学题库上准确率提升35%,生物学问题得分从62%跃升至79%,显著优于DeepSeek-R1等闭源模型。 特色:Agentic-Reasoning在定义和实现code agent上做的非常出色。可以借鉴。…...

解锁智能变革密码:浙江大学2025年DeepSeek行业应用案例集深度解析

引言:AI技术驱动的时代浪潮 2025年,人工智能技术已从实验室走向千行百业,成为推动社会经济发展的核心引擎。在这一背景下,浙江大学联合DeepSeek团队推出的《2025年DeepSeek行业应用案例集》(以下简称“案例集”&#…...

C# Unity 唐老狮 No.5 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: 全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体格式,…...

《2025软件测试工程师面试》功能测试篇

什么是功能测试? 功能测试是通过验证产品功能是否满足用户需求的过程,主要关注软件的功能是否符合需求规格说明,包括软件的各种功能、特性、性能、安全性和易用性等。 功能测试的流程包括哪些步骤? 需求分析:明确软件需求,确定测试范围。测试计划:制定详细的测试计划,…...

DeepSeek如何快速开发PDF转Word软件

一、引言 如今,在线工具的普及让PDF转Word成为了一个常见需求,常见的PDF转Word工具有收费的WPS,免费的有PDFGear,以及在线工具SmallPDF、iLovePDF、24PDF等。然而,大多数免费在线转换工具存在严重隐私风险——文件需上…...

ROS环境搭建

ROS首次搭建环境 注:以下内容都是在已经安装好ros的情况下如何搭建workplace 一、创建工作空间二、创建ROS包三、注意 注:以下内容都是在已经安装好ros的情况下如何搭建workplace 如果没有安装好,建议鱼香ros一步到位:鱼香ROS 我也是装了好久…...

深入探索DeepSeek开源之旅:开源Week全程解析

摘要 在农历新年刚刚结束之际,DeepSeek以卓越的开源精神,连续六天举办了开源Week活动。这一系列活动不仅展示了DeepSeek在技术领域的活跃度和影响力,还彰显了其对开源社区的贡献。通过这次活动,DeepSeek吸引了众多开发者和技术爱好…...

Redis是什么?如何使用Redis进行缓存操作?

Redis(Remote Dictionary Server)是一款高性能的内存键值存储系统,广泛用于缓存、消息队列、会话存储和实时数据处理等场景。它基于内存存储,支持多种数据结构,如字符串、列表、集合、有序集合和哈希表等,具…...

Unity学习笔记之——ugui的性能优化

在Unity中UI优化的核心问题就是重绘和批处理之间的平衡 一、Canvas优化要点 1.优化原因: (1)Unity为了性能优化,会合并Canvas下的所有元素; (2)如果把所有面板放到一个Canvas下,会…...

【三.大模型实战应用篇】【2.智能学员辅导系统:与大模型的深度交互】

早上七点半,初三学生小林打开数学辅导APP,发现AI老师准确指出了他昨晚作业中三次跳步计算的坏习惯——这比他亲妈观察得还细致。这背后是一场发生在代码深处的"脑力风暴",让我们潜入智能辅导系统与大模型深度交互的"暗室",看看那些让教育产生化学反应的…...

【vue-echarts】——04.配置项---legend

文章目录 一、配置项-legend图例二、显示结果一、配置项-legend图例 图例组件展现了不同系列的标记,颜色和名字。可以通过点击图例控制哪些系列不显示。 代码如下 Demo4View.vue <template><div class="about">...

面试题02.02.返回倒数第k个节点

实现一种算法&#xff0c;找出单向链表中倒数第 k 个节点。返回该节点的值。 注意&#xff1a;本题相对原题稍作改动 示例&#xff1a; 输入&#xff1a; 1->2->3->4->5 和 k 2 输出&#xff1a; 4 说明&#xff1a; 给定的 k 保证是有效的。 题解&#xff…...

剑指 Offer II 041. 滑动窗口的平均值

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20041.%20%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E7%9A%84%E5%B9%B3%E5%9D%87%E5%80%BC/README.md 剑指 Offer II 041. 滑动窗口的平均值 题目描述 给定一个整数…...

OCR PDF 文件是什么?它包含什么内容?

有些 PDF 文件是通过扫描纸质书页生成的&#xff0c;这类文件有其独特的特点。有时&#xff0c;原始书籍是唯一可用的版本&#xff0c;因此只能通过扫描的方式获取内容。 如何识别 OCR PDF 文件&#xff1f; 你通常可以从外观上辨别 OCR PDF 文件——页面上的文本看起来像“锯…...

什么是最终一致性,它对后端系统的意义是什么

最终一致性(Eventual Consistency)是分布式系统中的一种一致性模型。与传统的强一致性模型不同,最终一致性并不要求系统在任何时刻都保持一致,而是保证在足够的时间后,所有节点的数据最终会达到一致的状态。换句话说,系统允许短时间内出现数据的不一致性,但最终会通过某…...

CSS3中布局方式说明

CSS3 提供了多种灵活的布局方式&#xff0c;适用于不同的场景和需求。以下是主要的布局方式及其特点&#xff1a; 1. Flexbox 布局&#xff08;弹性盒子&#xff09; 用途&#xff1a;一维布局&#xff08;水平或垂直方向排列元素&#xff09;。特点&#xff1a; 通过 display…...

【开源-常用开源c/c++日志管理模块对比】

[TOC]&#xff08;开源-常用开源c/c日志管理模块对比&#xff09; 项目名称语言优点缺点适用场景开源代码链接spdlogC高性能&#xff0c;支持异步日志&#xff1b;丰富的格式化功能&#xff1b;跨平台&#xff1b;易于集成。依赖C11或更高版本&#xff1b;不适合嵌入式系统。高…...

基于log4j的自定义traceid实现

思路就是spring 做切面拦截请求&#xff0c;切面入口时生成traceId&#xff0c;然后放到MDC里面&#xff08;就是threadLocal&#xff0c;MDC是log框架提供的工具类&#xff0c;能方便在配置文件里面引用插入的值&#xff09;。 切面结束时traceId。 import com.sing.monitor…...

如何在网页上显示3D CAD PMI

在现代制造业中&#xff0c;3D CAD模型已成为产品设计和制造的核心。为了更有效地传达设计意图和制造信息&#xff0c;产品和制造信息&#xff08;PMI&#xff09;被嵌入到3D模型中。然而&#xff0c;如何在网页上清晰、准确地显示这些3D CAD PMI&#xff0c;成为了一个重要的技…...

LLMR: Real-time Prompting of Interactive Worldsusing Large Language Models

LLMR-使用大型语言模型的交互式世界实时建模 ABSTRACT 我们提出了混合现实的大语言模型&#xff08;LLMR&#xff09;&#xff0c;一个使用LLM实时创建和修改交互式混合现实体验的框架。LLMR利用新颖的策略来解决理想训练数据稀缺的困难情况&#xff0c;或者设计目标需要综合内…...

使用 OpenLIT 对 LLM 应用进行可观测

大规模语言模型&#xff08;LLM&#xff09;的可观测性 随着大规模语言模型&#xff08;LLM&#xff09;在各个领域的广泛应用&#xff0c;确保这些模型的稳定性和性能变得至关重要。为了实现这一目标&#xff0c;可观测性&#xff08;Observability&#xff09;成为了一个关键…...

C与C++的区别

C 深度剖析&#xff1a;对比 C 语言的显著差异 在编程的浩瀚宇宙中&#xff0c;C 和 C 堪称两颗耀眼的巨星&#xff0c;各自绽放出独一无二的光彩。C 语言作为经典的结构化编程语言&#xff0c;多年来在系统开发、嵌入式编程等领域始终占据着举足轻重的地位。而 C 作为 C 语言…...

【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器 (6讲) - 2.6 渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

https://time.geekbang.org/column/article/118826 2.6 渲染流程&#xff08;下&#xff09;&#xff1a;HTML、CSS和JavaScript&#xff0c;是如何变成页面的&#xff1f; 2.5介绍了渲染流水线中的 DOM 生成、样式计算和布局三个阶段&#xff0c;2.6讲解渲染流水线后面的阶段…...

开放鸿蒙认证,OpenHarmony兼容性认证介绍

Ⅰ、OpenHarmony开放鸿蒙兼容性测试认证&#xff1a;使用官方测试套件&#xff0c;对照PCS自检表中的必测项&#xff0c;在本地搭建的环境中对伙伴设备进行预测&#xff0c;直至取得合格的兼容性测试报告。 注&#xff1a;2025年01月01日起&#xff0c;不支持新产品基于老分支…...

磁盘空间不足|如何安全清理以释放磁盘空间(开源+节流)

背景&#xff1a; 最近往数据库里存的东西有点多&#xff0c;磁盘不够用 查看磁盘使用情况 df -h /dev/sda5&#xff08;根目录 /&#xff09; 已使用 92% 咱们来开源节流 目录 背景&#xff1a; 一、开源 二、节流 1.查找 大于 500MB 的文件&#xff1a; 1. Snap 缓存…...

【2】好未来JAVA开发工程师部分笔试题解析

编程题 1.降序的子数组最大元素和 给你一个正整数组成的数组nums&#xff0c;返回nums中一个降序子数组的最大可能元素和。 子数组是数组中的一个连续数字序列。 已知子数组[nums l, nums l1, … , nums r-1, nums r]&#xff0c;若对所有l (1<i<r)&#xff0c;nums …...

LeetCode 21. 合并两个有序链表(Python)

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4] 示例 2&#xff1a; 输入&#xff1a;l1 [], l2 [] 输出&#xff1a;[] 示例 3&#xff1a; 输…...

Y3学习打卡

网络结构图 YOLOv5配置了4种不同大小的网络模型&#xff0c;分别是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x&#xff0c;其中 YOLOv5s 是网络深度和宽度最小但检测速度最快的模型&#xff0c;其他3种模型都是在YOLOv5s的基础上不断加深、加宽网络使得网络规模扩大&#xff0c;在增强…...

2025-3-3 二叉树的存储结构

一、二叉树的存储结构&#xff08; 顺序存储&#xff0c;链式存储&#xff09; 1.顺序存数--&#xff08;用数组&#xff09; &#xff08;完全二叉树&#xff09;常考的基本操作&#xff1a; i 的左孩子 -----2i 右孩子-----2i1 i的父节点-----[i/2] 向下取整 i所在的层…...

RK3588V2--ES8388声卡适配记录

RK3588V2--ES8388声卡适配记录 1. ES8388声卡简单介绍2. 适配过程2.1 设备树配置 3. 问题分析与解决3.1 现声卡平台设备, 最终注册失败3.2 系统查看 I2C 设备3.3 怀疑是没有上拉电阻&#xff1f; 4. 测试阶段4.1 耳机接口测试--OK4.2 MIC测试--无法使用 5. 分析总结 1. ES8388声…...

【http://noi.openjudge.cn/】4.3算法之图论——1538:Gopher II

[【http://noi.openjudge.cn/】4.3算法之图论——1538:Gopher II] 题目 查看提交统计提问 总时间限制: 2000ms 内存限制: 65536kB 描述 The gopher family, having averted the canine threat, must face a new predator. The are n gophers and m gopher holes, each at di…...

PySide(PyQT)的视图(QGraphicsView)范例(一) 基本框架

最近学习了视图&#xff08;QGraphicsView&#xff09;的知识&#xff0c;总结一下&#xff0c;做一个demo以备忘。在demo中使用了场景&#xff08;QGraphicsScene&#xff09;、矩形框&#xff08;QGraphicsRectItem&#xff09;等构件&#xff0c;以及演示了常用的设置方法和…...

opencv 模板匹配方法汇总

在OpenCV中&#xff0c;模板匹配是一种在较大图像中查找特定模板图像位置的技术。OpenCV提供了多种模板匹配方法&#xff0c;通过cv2.matchTemplate函数实现&#xff0c;该函数支持的匹配方式主要有以下6种&#xff0c;下面详细介绍每种方法的原理、特点和适用场景。 1. cv2.T…...

_mm_shuffle_epi32解析

一 概述 _mm_shuffle_epi32和_MMSHUFFLE是与SSE指令集相关的开发工具&#xff0c;主要用于SIMD向量操作。 二 _mm_shuffle_epi32 函数 功能&#xff1a;对128位整数向量(__m128i)中的四个32位整数进行重排序 原型&#xff1a;__m128i _mm_shuffle_epi32 (__m128i a, int imm…...

Tauri+React+Ant Design跨平台开发环境搭建指南

TauriReactAnt Design跨平台开发环境搭建指南 一、环境配置与工具链搭建 1.1 基础环境准备 必备组件&#xff1a; Rust工具链&#xff08;v1.77&#xff09;&#xff1a; curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh Node.js LTS&#xff08;v20.11.1&a…...

《基于Selenium的论坛系统自动化测试实战报告》

一、项目背景与技术选型 项目简介 目标系统&#xff1a;论坛系统 核心功能&#xff1a;用户注册/登录、会话框发送信息、好友列表、信息发送 技术栈&#xff1a;html Springboot MySQL数据库 为什么选择Selenium 支持多浏览器兼容性测试&#xff08;Chrome/Firefox/Edge&…...

洛谷 P11830 省选联考2025 幸运数字 题解

题意 小 X 有 n n n 个正整数二元组 ( a i , b i ) ( 1 ≤ i ≤ n ) (a_i, b_i) (1 \leq i \leq n) (ai​,bi​)(1≤i≤n)。他将会维护初始为空的可重集 S S S&#xff0c;并对其进行 n n n 轮操作。第 i ( 1 ≤ i ≤ n ) i (1 \leq i \leq n) i(1≤i≤n) 轮操作中&#…...

清华北大DeepSeek六册

「清华北大-Deepseek使用手册」 链接&#xff1a;https://pan.quark.cn/s/98782f7d61dc 「清华大学Deepseek整理&#xff09; 1&#xff0d;6版本链接&#xff1a;https://pan.quark.cn/s/72194e32428a AI学术工具公测链接:https://pan.baidu.com/s/104w_uBB2F42Da0qnk78_ew …...

ubuntu部署gitlab-ce及数据迁移

ubuntu部署gitlab-ce及数据迁移 进行前梳理: 在esxi7.0 Update 3 基础上使用 ubuntu22.04.5-server系统对 gitlab-ce 16.10进行部署,以及将gitlab-ee 16.9 数据进行迁移到gitlab-ce 16.10 进行后总结: 起初安装了极狐17.8.3-jh 版本(不支持全局中文,就没用了) …...

什么是 MGX:MetaGPT

什么是 MGX:MetaGPT MetaGPT是由思码逸(OpenDILab)团队开发的一款专注于生成式AI驱动的软件开发框架,MGX可能是其衍生或升级的相关成果,它创新性地将大语言模型引入软件开发流程,模拟人类软件团队的协作方式,能让用户通过自然语言描述需求,即可自动生成完整的软件项目,…...