Gradle多模块之父子模块

利用gradle进行多模块架构,用于代码解耦

一:新建一个gradle工程

  1. 以springboot为例
    在这里插入图片描述
  2. 选择gradle project
    在这里插入图片描述
  3. 可以什么都不选
    在这里插入图片描述
  4. 选择本地gradle
    在这里插入图片描述

二:修改工程

  1. 删除src文件
  2. 修改build.gradle文件
    plugins {
        // 引入 api 传递依赖的方法 用来代替compile
        id 'java-library'
        id 'org.springframework.boot' version '2.2.10.RELEASE' apply false
        id 'io.spring.dependency-management' version '1.0.10.RELEASE' apply false
    }
    
    ext { // 自定义扩展 字段 这里定义版本信息
        jjwtVersion = '0.11.1'
        commonsLang3Version = '3.9'
        commonsCollections4Version = '4.4'
        commonsCodecVersion = '1.14'
        druidVersion = '1.1.23'
        mapstructVersion = '1.3.0.Final'
        querydslVersion = '4.3.1'
        // https://start.spring.io/actuator/info spring cloud 版本对应 json
        set('springCloudVersion', "Hoxton.SR8")
        set('springCloudAlibabaVersion', "2.2.1.RELEASE")
    }
    
    /* 所有子项目的通用配置 */
    subprojects {
        /* 使用二进制插件 */
        apply plugin: 'java' /* java是Gradle的核心插件,是内置的,内置插件不需要配置依赖路径 */
        apply plugin: 'idea' /* 同上  让Gradle自动生成Intellij的项目文件*/
        /* 注意gradle插件不再自动应用,所以这里需要指定 */
        apply plugin: 'org.springframework.boot'
        /* 依赖管理插件仍然是一个spring-boot-gradle-plugin传递依赖,所以无需在build.gradle配置中明确列出此依赖。 */
        apply plugin: 'io.spring.dependency-management' /* 依赖管理,用来传递spring的依赖 */
    
        group = 'com.pay'
        version = '0.0.1' /* 项目版本 */
        /* 指定jdk版本 */
        sourceCompatibility = '1.8'
        /* java编译的时候缺省状态下会因为中文字符而失败 */
        [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'
    
        repositories {
            mavenLocal()
            maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
            mavenCentral()
        }
    
        /* 添加通用依赖 */
        dependencies {	   
            implementation 'org.springframework.boot:spring-boot-starter-web'
            testImplementation 'org.springframework.boot:spring-boot-starter-test'
        }
    }
    

三:新建子模块

  1. 创建
    在这里插入图片描述
    创建方式和上面的创建工程的方式一样
  2. 删除文件(除src和build.gradle)
    在这里插入图片描述
  3. 修改build.gradle
    
    /* 子模块项目名,jar名 */
    archivesBaseName = 'demo-two'
    
    
    jar.enabled = true
    /* 需要org.springframework.boot插件 不需要打包成可执行的jar*/
    bootJar.enabled = false
    
  4. 由于这个模块只提供公共的utils,log,等,所以不需要启动类
    在这里插入图片描述
  5. 在创建一个模块,创建方式同上,依赖于上一个子模块
    build.gradle
    
    archivesBaseName = 'demo-three'
    
    jar.enabled = true
    bootJar.enabled = true
    
    
    dependencies {
        implementation project(':demo-two') /* 子模块之间的依赖 */
    }
    

四:修改父模块setting.gradle

/* 多模块构建 */
/* 父模块名称 */
rootProject.name = 'demo-one'
/* 引入子模块 */
include 'demo-two','demo-three'

五:修改gradle插件

在这里插入图片描述
删除demo-two,demo-three
在这里插入图片描述
展开demo-one里面由子模块的gradel插件,可统一执行脚本,如打包、

六:测试

在这里插入图片描述
启动项目
在这里插入图片描述
测试成功

demo地址

  • 6
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
这个错误提示"This application has no explicit mapping for /error, so you are seeing this as a fallback."表示应用程序没有对"/error"路径进行显式的映射,所以你才看到这个错误。解决这个问题的方法有两种。首先,你需要检查配置文件application是否与你的项目文件在同一级目录下。其次,你需要确保控制该页面的controller和控制页面跳转的controller的@RequestMapping后面的地址是否与该页面一致。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [报错:this application has no explicit mapping for /error, so you are seeing this as a fallback.](https://blog.csdn.net/caihongfengzhu/article/details/130165404)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [报错This application has no explicit mapping for /error, so you are seeing this as a fallback.](https://blog.csdn.net/a1782519342/article/details/124749723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值