springboot聚合工程的部署与深入讲解
目录
- 1.什么是聚合工程
- 2.聚合工程优势
- 3.创建聚合工程
- 4.父工程详解
- 1.pom文件
- 5.ruoyi-modules子工程配置
- 1.pom文件
- 总结
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 ruoyi2.5.0 ruoyi http://www.ruoyi.vip 若依微服务系统 2.5.0 UTF-8UTF-81.8 2.3.7.RELEASEHoxton.SR92.2.5.RELEASE2.3.12.1.42.9.21.5.241.26.5 2.3.2 1.3.01.2.4 3.2.1 2.5 1.3.3 1.7 1.2.75 8.0.3 4.1.22.6.2 org.springframework.cloud spring-cloud-dependencies${spring-cloud.version} pom importcom.alibaba.cloud spring-cloud-alibaba-dependencies${spring-cloud-alibaba.version} pom importorg.springframework.boot spring-boot-dependencies${spring-boot.version} pom importde.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-collectionscom.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} pom ruoyi-auth ruoyi-gateway ruoyi-visual ruoyi-modules ruoyi-api ruoyi-common io.swagger swagger-annotations1.5.10 org.apache.maven.plugins maven-compiler-plugin${java.version} ${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 ruoyi2.5.0 4.0.0 ruoyi-modulespom ruoyi-system ruoyi-gen ruoyi-job ruoyi-file ruoyi-modules业务模块
这里主要配置是
:内容就是父工程的2.ruoyi-system子项目配置
:指该工程包含ruoyi-system,ruoyi-gen,ruoyi-job,ruoyi-file子工程
com.ruoyi ruoyi-modules2.5.0 4.0.0 ruoyi-modules-systemruoyi-modules-system系统模块 com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discoverycom.alibaba.cloud spring-cloud-starter-alibaba-nacos-configcom.alibaba.cloud spring-cloud-starter-alibaba-sentinelorg.springframework.boot spring-boot-starter-actuatorio.springfox springfox-swagger-ui${swagger.fox.version} mysql mysql-connector-javacom.ruoyi ruoyi-common-datasourcecom.ruoyi ruoyi-common-datascopecom.ruoyi ruoyi-common-logcom.ruoyi ruoyi-common-swagger${project.artifactId} org.springframework.boot spring-boot-maven-pluginrepackage
:配置父工程ruoyi-modules的如果想引入其他工程,只需要加入:
:本项目的依赖
com.ruoyi ruoyi-common-datascopecom.ruoyi ruoyi-common-logcom.ruoyi ruoyi-common-swagger
总结 到此这篇关于springboot聚合工程的部署与讲解的文章就介绍到这了,更多相关springboot聚合工程部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 全过程工程咨询——时间管理(12)
- IDEA|IDEA 创建工程
- 我的软件测试开发工程师书单
- springboot使用redis缓存
- V-learn小西妈双语工程2017年03期144号谢思岩Carlos2017.10.21-10.22
- springboot整合数据库连接池-->druid
- SpringBoot中YAML语法及几个注意点说明