iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >springboot聚合工程是什么意思
  • 115
分享到

springboot聚合工程是什么意思

2023-06-25 12:06:30 115人浏览 泡泡鱼
摘要

小编给大家分享一下SpringBoot聚合工程是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.什么是聚合工程如下图所示,拥有父子包结构的springb

小编给大家分享一下SpringBoot聚合工程是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    1.什么是聚合工程

    如下图所示,拥有父子包结构的springboot工程叫做聚合工程。其中父包包括了多个子包(多个项目)。

    springboot聚合工程是什么意思

    2.聚合工程优势

    1. 组件化管理通用功能,动态的添加功能。

    2. 统一管理jar包的版本号

    3. 提高复用性

    3.创建聚合工程

    首先创建一个springboot项目,然后删除src文件夹 。

    创建子工程

    springboot聚合工程是什么意思

    选择Spring Boot项目,然后继续,创建项目。如果是工具,配置,组件化的项目(不需要启动)可以继续删除启动类和resources文件夹。

    springboot聚合工程是什么意思

    修改父工程和子工程pom文件。然后聚合工程就搭建好了,这里最重点是pom文件的配置和标签,下文就开始介绍。

    4.父工程详解

    ps:这里以若依开源项目为例,结构如下,我们主要讲解红框里面的配置,父工程为RuoYi-Cloud,包括ruoyi-auth,ruoyi-gateway,ruoyi-visual,ruoyi-api,ruoyi-common子项目。而ruoyi-modules子工程也包括多个子工程。

    springboot聚合工程是什么意思

    1.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.ruoyi</groupId>    <artifactId>ruoyi</artifactId>    <version>2.5.0</version>    <name>ruoyi</name>    <url>http://www.ruoyi.vip</url>    <description>若依微服务系统</description>    <properties>        <ruoyi.version>2.5.0</ruoyi.version>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>        <java.version>1.8</java.version>        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>        <spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version><spring-boot-admin.version>2.3.1</spring-boot-admin.version>        <spring-boot.mybatis>2.1.4</spring-boot.mybatis>        <swagger.fox.version>2.9.2</swagger.fox.version>        <swagger.core.version>1.5.24</swagger.core.version>        <tobato.version>1.26.5</tobato.version>        <kaptcha.version>2.3.2</kaptcha.version>        <pagehelper.boot.version>1.3.0</pagehelper.boot.version>        <druid.version>1.2.4</druid.version>        <dynamic-ds.version>3.2.1</dynamic-ds.version>        <commons.io.version>2.5</commons.io.version>        <commons.fileupload.version>1.3.3</commons.fileupload.version>        <velocity.version>1.7</velocity.version>        <fastJSON.version>1.2.75</fastjson.version>        <miNIO.version>8.0.3</minio.version><poi.version>4.1.2</poi.version>        <common-pool.version>2.6.2</common-pool.version>    </properties>    <!-- 依赖声明 -->    <dependencyManagement>        <dependencies>            <!-- SpringCloud 微服务 -->            <dependency>                <groupId>org.springframework.cloud</groupId>                <artifactId>spring-cloud-dependencies</artifactId>                <version>${spring-cloud.version}</version>                <type>pom</type>                <scope>import</scope>            </dependency><!-- SprinGCloud 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>            <!-- SpringBoot 依赖配置 -->            <dependency>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-dependencies</artifactId>                <version>${spring-boot.version}</version>                <type>pom</type>                <scope>import</scope>            </dependency>            <!--  SpringBoot 监控客户端 -->            <dependency>                <groupId>de.codecentric</groupId>                <artifactId>spring-boot-admin-starter-client</artifactId>                <version>${spring-boot-admin.version}</version>            </dependency>            <!-- FastDFS 分布式文件系统 -->            <dependency>                <groupId>com.GitHub.tobato</groupId>                <artifactId>fastdfs-client</artifactId>                <version>${tobato.version}</version>            </dependency>            <!-- Mybatis 依赖配置 -->            <dependency>                <groupId>org.mybatis.spring.boot</groupId>                <artifactId>mybatis-spring-boot-starter</artifactId>                <version>${spring-boot.mybatis}</version>            </dependency>            <!-- Swagger 依赖配置 -->            <dependency>                <groupId>io.swagger</groupId>                <artifactId>swagger-models</artifactId>                <version>${swagger.core.version}</version>            </dependency>            <dependency>                <groupId>io.swagger</groupId>                <artifactId>swagger-annotations</artifactId>                <version>${swagger.core.version}</version>            </dependency>            <!-- 验证码 -->            <dependency>                <groupId>com.github.penggle</groupId>                <artifactId>kaptcha</artifactId>                <version>${kaptcha.version}</version>            </dependency>            <!-- pagehelper 分页插件 -->            <dependency>                <groupId>com.github.pagehelper</groupId>                <artifactId>pagehelper-spring-boot-starter</artifactId>                <version>${pagehelper.boot.version}</version>            </dependency>            <!-- io常用工具类 -->            <dependency>                <groupId>commons-io</groupId>                <artifactId>commons-io</artifactId>                <version>${commons.io.version}</version>            </dependency>            <!-- excel工具 -->            <dependency>                <groupId>org.apache.poi</groupId>                <artifactId>poi-ooxml</artifactId>                <version>${poi.version}</version>            </dependency>            <!-- 文件上传工具类 -->            <dependency>                <groupId>commons-fileupload</groupId>                <artifactId>commons-fileupload</artifactId>                <version>${commons.fileupload.version}</version>            </dependency>            <!-- 代码生成使用模板 -->            <dependency>                <groupId>org.apache.velocity</groupId>                <artifactId>velocity</artifactId>                <version>${velocity.version}</version>                <exclusions>                    <exclusion>                        <groupId>commons-collections</groupId>                        <artifactId>commons-collections</artifactId>                    </exclusion>                </exclusions>            </dependency>            <!-- JSON 解析器和生成器 -->            <dependency>                <groupId>com.alibaba</groupId>                <artifactId>fastjson</artifactId>                <version>${fastjson.version}</version>            </dependency>                        <!-- 公共资源池 -->            <dependency>                <groupId>org.apache.commons</groupId>                <artifactId>commons-pool2</artifactId>                <version>${common-pool.version}</version>            </dependency>            <!-- 核心模块 -->        <dependency>                <groupId>com.ruoyi</groupId>                <artifactId>ruoyi-common-core</artifactId>                <version>${ruoyi.version}</version>            </dependency>            <!-- 接口模块 -->            <dependency>                <groupId>com.ruoyi</groupId>                <artifactId>ruoyi-common-swagger</artifactId>                <version>${ruoyi.version}</version>            </dependency>                    <!-- 安全模块 -->            <dependency>                <groupId>com.ruoyi</groupId>                <artifactId>ruoyi-common-security</artifactId>                <version>${ruoyi.version}</version>            </dependency>                    <!-- 权限范围 -->            <dependency>                <groupId>com.ruoyi</groupId>                <artifactId>ruoyi-common-datascope</artifactId>                <version>${ruoyi.version}</version>            </dependency>                        <!-- 多数据源 -->            <dependency>                <groupId>com.ruoyi</groupId>                <artifactId>ruoyi-common-datasource</artifactId>                <version>${ruoyi.version}</version>            </dependency>            <!-- 日志记录 -->            <dependency>                <groupId>com.ruoyi</groupId>                <artifactId>ruoyi-common-log</artifactId>                <version>${ruoyi.version}</version>            </dependency>            <!-- 缓存服务 -->            <dependency>                <groupId>com.ruoyi</groupId>                <artifactId>ruoyi-common-redis</artifactId>                <version>${ruoyi.version}</version>            </dependency>            <!-- 系统接口 -->            <dependency>                <groupId>com.ruoyi</groupId>                <artifactId>ruoyi-api-system</artifactId>                <version>${ruoyi.version}</version>            </dependency>        </dependencies>    </dependencyManagement>    <modules><module>ruoyi-auth</module><module>ruoyi-gateway</module><module>ruoyi-visual</module><module>ruoyi-modules</module><module>ruoyi-api</module><module>ruoyi-common</module>    </modules>    <packaging>pom</packaging>    <dependencies>        <!-- swagger -->        <dependency>            <groupId>io.swagger</groupId>            <artifactId>swagger-annotations</artifactId>            <version>1.5.10</version>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                    <source>${java.version}</source>                    <target>${java.version}</target>                    <encoding>${project.build.sourceEncoding}</encoding>                </configuration>            </plugin>        </plugins>    </build></project>
    <name><url><description>都是非必须,字面意思。<groupId>:域 例如com<artifactId>:公司名  groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的<version>:项目的版本号<properties>:属性的占位符 如java中的常量 <dependencyManagement>:在我们项目顶层的POM文件中,我们会看到dependencyManagement元素。通过它元素来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。<dependencies>:指定所有的子工程都下载该包。

    白话说 如果父工程有,且groupId和artifactId相同,那么子工程不需要指定版本号, 直接使用父工程版本号。

    例如:当子工程有groupId为org.springframework.cloud时,引用当前父工程指定版本。子工程不用在写版本号了。

    <!-- SpringCloud 微服务 -->    <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-dependencies</artifactId>        <version>${spring-cloud.version}</version>        <type>pom</type>        <scope>import</scope>    </dependency>

    <modules>:指当前父工程包含的子工程 如果这里不引入 那么 刷新父工程pom时 子工程不会下载jar包
    <build>:打包配置
    <packaging>pom</packaging>在聚合工程中 一定要配置 指的是在引入其他工程时 直接引入代码,否则就会打成jar包 这样就会报错了

    5.ruoyi-modules子工程配置

    这里我们选择一个最有代表性的子工程ruoyi-modules来介绍。

    1.pom文件

    <?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <parent>        <groupId>com.ruoyi</groupId>        <artifactId>ruoyi</artifactId>        <version>2.5.0</version>    </parent>    <modelVersion>4.0.0</modelVersion>    <modules>        <module>ruoyi-system</module>        <module>ruoyi-gen</module>        <module>ruoyi-job</module>        <module>ruoyi-file</module>    </modules>    <artifactId>ruoyi-modules</artifactId>    <packaging>pom</packaging>    <description>        ruoyi-modules业务模块    </description></project>

    这里主要配置是

    <parent>:内容就是父工程的<groupId><artifactId><version>
    <modules>:指该工程包含ruoyi-system,ruoyi-gen,ruoyi-job,ruoyi-file子工程

    ruoyi-system子项目配置

    <?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xmlns="http://maven.apache.org/POM/4.0.0"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <parent>        <groupId>com.ruoyi</groupId>        <artifactId>ruoyi-modules</artifactId>        <version>2.5.0</version>    </parent>    <modelVersion>4.0.0</modelVersion>    <artifactId>ruoyi-modules-system</artifactId>    <description>        ruoyi-modules-system系统模块    </description>    <dependencies>        <!-- SpringCloud Alibaba Nacos -->        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>        </dependency>                <!-- SpringCloud Alibaba Nacos Config -->        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>        </dependency>            <!-- SpringCloud Alibaba Sentinel -->        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>        </dependency>            <!-- SpringBoot Actuator -->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-actuator</artifactId>        </dependency>        <!-- Swagger UI -->        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger-ui</artifactId>            <version>${swagger.fox.version}</version>        </dependency>        <!-- Mysql Connector -->        <dependency>            <groupId>Mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>                <!-- RuoYi Common DataSource -->        <dependency>            <groupId>com.ruoyi</groupId>            <artifactId>ruoyi-common-datasource</artifactId>        </dependency>                <!-- RuoYi Common DataScope -->        <dependency>            <groupId>com.ruoyi</groupId>            <artifactId>ruoyi-common-datascope</artifactId>        </dependency>                <!-- RuoYi Common Log -->        <dependency>            <groupId>com.ruoyi</groupId>            <artifactId>ruoyi-common-log</artifactId>        </dependency>                <!-- RuoYi Common Swagger -->        <dependency>            <groupId>com.ruoyi</groupId>            <artifactId>ruoyi-common-swagger</artifactId>        </dependency>    </dependencies>    <build>        <finalName>${project.artifactId}</finalName>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <executions>                    <execution>                        <Goals>                            <goal>repackage</goal>                        </goals>                    </execution>                </executions>            </plugin>        </plugins>    </build>   </project>

    <parent>:配置父工程ruoyi-modules的<groupId><artifactId><version>
    <dependencies>:本项目的依赖

    如果想引入其他工程,只需要加入:

    <!-- RuoYi Common DataScope -->        <dependency>            <groupId>com.ruoyi</groupId>            <artifactId>ruoyi-common-datascope</artifactId>        </dependency>                <!-- RuoYi Common Log -->        <dependency>            <groupId>com.ruoyi</groupId>            <artifactId>ruoyi-common-log</artifactId>        </dependency>                <!-- RuoYi Common Swagger -->        <dependency>            <groupId>com.ruoyi</groupId>            <artifactId>ruoyi-common-swagger</artifactId>        </dependency>

    以上是“springboot聚合工程是什么意思”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: springboot聚合工程是什么意思

    本文链接: https://www.lsjlt.com/news/304739.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • springboot聚合工程是什么意思
      小编给大家分享一下springboot聚合工程是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.什么是聚合工程如下图所示,拥有父子包结构的springb...
      99+
      2023-06-25
    • MongoDB的聚合是什么意思
      本篇内容介绍了“MongoDB的聚合是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
      99+
      2024-04-02
    • IDEA搭建SpringBoot多模块聚合工程过程详解(多模块聚合工程)
      目录一、搭建环境(1)IDEA创建maven工程(2)修改pom依赖(4)创建app-pojo子工程(5)创建app-mapper子工程(6)创建app-service子工程&nbs...
      99+
      2024-04-02
    • 前端工程化是什么意思
      本篇内容主要讲解“前端工程化是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“前端工程化是什么意思”吧!工程及工程化一个工程其实就是一个项目,比如一个网站...
      99+
      2024-04-02
    • springboot聚合工程的部署与深入讲解
      目录1.什么是聚合工程2.聚合工程优势3.创建聚合工程4.父工程详解1.pom文件5.ruoyi-modules子工程配置1.pom文件总结1.什么是聚合工程 如下图所示,拥有父子...
      99+
      2024-04-02
    • MyBatis逆向工程指的是什么意思
      MyBatis逆向工程指的是根据数据库表结构自动生成对应的实体类、Mapper接口和XML映射文件的过程。通过逆向工程工具,开发人员...
      99+
      2024-03-07
      MyBatis
    • gitlab合并请求是什么意思
      随着软件开发的快速发展,版本控制变得越来越重要。Git是目前最流行的分布式版本控制系统之一,而GitLab则是一个基于Git的Web平台,提供一个完整的(代码)管理系统。在GitLab中,合并请求(merge request)是一个非常重要...
      99+
      2023-10-22
    • jmeter聚合报告是什么
      这篇文章主要介绍“jmeter聚合报告是什么”,在日常操作中,相信很多人在jmeter聚合报告是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jmeter聚合报告是什么”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-06-05
    • J2EE是什么意思2又是什么意思
      J2EE是Java 2 Platform, Enterprise Edition的缩写,意思是Java 2企业级平台。它是一种用于开...
      99+
      2023-09-20
      J2EE
    • MongoDB聚合指的是什么
      今天就跟大家聊聊有关MongoDB聚合指的是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MongoDB聚合介绍聚合是处理数据记录和返回计算结果...
      99+
      2024-04-02
    • css3中复合属性是什么意思
      这篇文章将为大家详细讲解有关css3中复合属性是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在css3中,复合属性又称“简写属性”...
      99+
      2024-04-02
    • Java中的set集合是什么意思
      目录引言概念HashSet集合LinkedHashSet集合:TreeSet集合:实战场景引言 在前面的内容中,我们先是一一介绍了Collection集合中都有哪些种类的集合,并且详...
      99+
      2024-04-02
    • python编程是什么意思
      Python编程是指使用Python语言进行软件开发或编写脚本的过程。Python是一种高级编程语言,它具有简单易学、可读性强以及功...
      99+
      2023-09-22
      python
    • 小程序是什么意思
      这篇文章给大家分享的是有关小程序是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是小程序我从网上找了一些关于小程序的概念:微信小程序,简称小程序,缩写XCX,英文名mini program,是一种...
      99+
      2023-06-27
    • javascript组合继承的意思是什么
      这篇文章主要介绍“javascript组合继承的意思是什么”,在日常操作中,相信很多人在javascript组合继承的意思是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”javascript组合继承的意思...
      99+
      2023-06-20
    • sql中什么是非聚合列
      sql 中的非聚合列是存储单一记录值的列,不会被聚合函数处理。这些列包含每个记录的唯一值,用于标识、分类或筛选数据。 非聚合列 在 SQL 中,非聚合列指存储表中单一记录值的列。这些值...
      99+
      2024-05-02
      聚合函数
    • sql中聚合函数是什么
      sql 中的聚合函数是对一组行执行计算并返回单个值的函数,用于汇总和聚合数据,提取有意义的见解,包括 count()、sum()、avg()、max() 和 min()。它们通过计算所有...
      99+
      2024-05-07
      聚合函数
    • Java多线程是什么意思
      这篇文章主要讲解了“Java多线程是什么意思”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java多线程是什么意思”吧!多线程(multiple thread)是计算机实现多任务并行处理的一...
      99+
      2023-06-02
    • linux中线程是什么意思
      这篇文章主要为大家展示了“linux中线程是什么意思”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中线程是什么意思”这篇文章吧。在linux中,线程(thread)指的是程序内部的一个...
      99+
      2023-06-21
    • mysql复合主键指的是什么意思
      本篇内容介绍了“mysql复合主键指的是什么意思”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
      99+
      2023-04-03
      mysql
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作