'C.c' 2023-10-08 09:31 采纳率: 0%
浏览 28
已结题

Gradle+SpringBoot多模块项目,模块间的依赖没有传递

gradle版本8.4或者8.2.1、springboot版本2.7.15、jdk8

1、项目结构

- GradleSpringBootDemo
 - GradleCommon
 - GradleOne
  • 如图:

img

2、引入依赖

2.1、GradleSpringBootDemo的配置

  • build.gradle
plugins {
    id 'java'
    id 'idea'
//    id 'java-library'
    id 'maven-publish'
    id 'org.springframework.boot' version '2.7.15'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}

//所有模块生效——基础配置
allprojects {
    // 配置项目信息
    group = 'com.cc'
    version = '0.0.1-SNAPSHOT'
    // 配置字符编码
    tasks.withType(JavaCompile).configureEach {
        options.encoding = 'UTF-8'
    }

    java {
        sourceCompatibility = '8'
        targetCompatibility = '8'
    }

    //仓库配置
    repositories {
        //本地
        mavenLocal()
        //阿里仓库
        maven { url 'https://maven.aliyun.com/repository/public/' }
        //公司仓库。必须用:https。Gradle默认情况下不允许使用不安全的协议,以提高安全性。
        maven { url 'https://******:******/repository/maven-public/' }
        //中央仓库
        mavenCentral()
    }

}

//所有子模块生效——springboot配置、导包版本管理、打包管理
subprojects {
    apply plugin: 'java'
    apply plugin: 'idea'
    //所有子模块都是springboot项目,如不是,不能打包。
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'

    //所有子模块的-依赖版本管理
    dependencyManagement {
        dependencies {
            dependency "cn.hutool:hutool-all:5.0.7"
            dependency "org.apache.commons:commons-lang3:3.5"
        }
    }

    //使用 gradle打包工具
//    jar {
//        manifest.attributes provider: 'gradle'
//    }

    tasks.named('test') {
        useJUnitPlatform()
    }

}

// 定义任务:配置 gradle-wrapper.properties 下载gradle属性
wrapper {
    //gradle的版本
    gradleVersion = '8.4'
    //版本类型:BIN、ALL(完全版,可以看gradle的代码)
    distributionType = 'ALL'
}
  • settings.gradle
rootProject.name = 'GradleSpringBootDemo'
include 'GradleOne'
include 'GradleCommon'

2.2、GradleCommon模块引入依赖

GradleCommon 的 build.gradle

   dependencies {
      implementation('cn.hutool:hutool-all')
      implementation 'org.apache.commons:commons-lang3'
    }

2.3、GradleOne模块依赖于GradleCommon

GradleOne 的 build.gradle

dependencies {
    implementation project(':GradleCommon')
}

3、问题

GradleOne模块可以使用GradleCommon模块中自己建的类,但是无法使用GradleCommon导入的依赖:hutool和commons-lang3,说明依赖没有传递,请问怎么解决?

  • Gradle构建如下图:

img

  • 项目截图2:

img

  • 写回答

1条回答 默认 最新

  • IT工程师_二师兄 2023-10-08 09:41
    关注

    这个项目有一个依赖文件目录发给我看一下

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月2日
  • 修改了问题 10月8日
  • 创建了问题 10月8日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100