springboot聚合工程是什么意思
小编给大家分享一下springboot聚合工程是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1.什么是聚合工程
如下图所示,拥有父子包结构的springboot工程叫做聚合工程。其中父包包括了多个子包(多个项目)。
2.聚合工程优势
组件化管理通用功能,动态的添加功能。
统一管理jar包的版本号
提高复用性
3.创建聚合工程
1.首先创建一个springboot项目,然后删除src文件夹 。
2.创建子工程
选择spring boot项目,然后继续,创建项目。如果是工具,配置,组件化的项目(不需要启动)可以继续删除启动类和resources文件夹。
3. 修改父工程和子工程pom文件。然后聚合工程就搭建好了,这里最重点是pom文件的配置和标签,下文就开始介绍。
4.父工程详解
ps:这里以若依开源项目为例,结构如下,我们主要讲解红框里面的配置,父工程为RuoYi-Cloud,包括ruoyi-auth,ruoyi-gateway,ruoyi-visual,ruoyi-api,ruoyi-common子项目。而ruoyi-modules子工程也包括多个子工程。
1.pom文件
4.0.0 com.ruoyi ruoyi 2.5.0 ruoyi http://www.ruoyi.vip 若依微服务系统 2.5.0 UTF-8 UTF-8 1.8 2.3.7.RELEASE Hoxton.SR9 2.2.5.RELEASE 2.3.1 2.1.4 2.9.2 1.5.24 1.26.5 2.3.2 1.3.0 1.2.4 3.2.1 2.5 1.3.3 1.7 1.2.75 8.0.3 4.1.2 2.6.2 org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import com.alibaba.cloud spring-cloud-alibaba-dependencies ${spring-cloud-alibaba.version} pom import org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import de.codecentric spring-boot-admin-starter-client ${spring-boot-admin.version} com.github.tobato fastdfs-client ${tobato.version} org.mybatis.spring.boot mybatis-spring-boot-starter ${spring-boot.mybatis} io.swagger swagger-models ${swagger.core.version} io.swagger swagger-annotations ${swagger.core.version} com.github.penggle kaptcha ${kaptcha.version} com.github.pagehelper pagehelper-spring-boot-starter ${pagehelper.boot.version} commons-io commons-io ${commons.io.version} org.apache.poi poi-ooxml ${poi.version} commons-fileupload commons-fileupload ${commons.fileupload.version} org.apache.velocity velocity ${velocity.version} commons-collections commons-collections com.alibaba fastjson ${fastjson.version} org.apache.commons commons-pool2 ${common-pool.version} com.ruoyi ruoyi-common-core ${ruoyi.version} com.ruoyi ruoyi-common-swagger ${ruoyi.version} com.ruoyi ruoyi-common-security ${ruoyi.version} com.ruoyi ruoyi-common-datascope ${ruoyi.version} com.ruoyi ruoyi-common-datasource ${ruoyi.version} com.ruoyi ruoyi-common-log ${ruoyi.version} com.ruoyi ruoyi-common-redis ${ruoyi.version} com.ruoyi ruoyi-api-system ${ruoyi.version} ruoyi-auth ruoyi-gateway ruoyi-visual ruoyi-modules ruoyi-api ruoyi-common pom io.swagger swagger-annotations 1.5.10 org.apache.maven.plugins maven-compiler-plugin ${java.version} ${project.build.sourceEncoding}
都是非必须,字面意思。 :域 例如com :公司名 groupid和artifactId被统称为"坐标"是为了保证项目唯一性而提出的 :项目的版本号 :属性的占位符 如java中的常量 :在我们项目顶层的POM文件中,我们会看到dependencyManagement元素。通过它元素来管理jar包的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement元素中指定的版本号。 :指定所有的子工程都下载该包。
白话说 如果父工程有,且groupId和artifactId相同,那么子工程不需要指定版本号, 直接使用父工程版本号。
例如:当子工程有groupId为org.springframework.cloud时,引用当前父工程指定版本。子工程不用在写版本号了。
org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import
:指当前父工程包含的子工程 如果这里不引入 那么 刷新父工程pom时 子工程不会下载jar包 :打包配置 pom 在聚合工程中 一定要配置 指的是在引入其他工程时 直接引入代码,否则就会打成jar包 这样就会报错了
5.ruoyi-modules子工程配置
这里我们选择一个最有代表性的子工程ruoyi-modules来介绍。
1.pom文件
com.ruoyi ruoyi 2.5.0 4.0.0 ruoyi-system ruoyi-gen ruoyi-job ruoyi-file ruoyi-modules pom ruoyi-modules业务模块
这里主要配置是
:内容就是父工程的 :指该工程包含ruoyi-system,ruoyi-gen,ruoyi-job,ruoyi-file子工程
2.ruoyi-system子项目配置
com.ruoyi ruoyi-modules 2.5.0 4.0.0 ruoyi-modules-system ruoyi-modules-system系统模块 com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config com.alibaba.cloud spring-cloud-starter-alibaba-sentinel org.springframework.boot spring-boot-starter-actuator io.springfox springfox-swagger-ui ${swagger.fox.version} mysql mysql-connector-java com.ruoyi ruoyi-common-datasource com.ruoyi ruoyi-common-datascope com.ruoyi ruoyi-common-log com.ruoyi ruoyi-common-swagger ${project.artifactId} org.springframework.boot spring-boot-maven-plugin repackage
:配置父工程ruoyi-modules的 :本项目的依赖
如果想引入其他工程,只需要加入:
com.ruoyi ruoyi-common-datascope com.ruoyi ruoyi-common-log com.ruoyi ruoyi-common-swagger
以上是"springboot聚合工程是什么意思"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!