如何配置嵌套的多模块gradle项目

时间:2021-03-17 08:28:34

标签: java gradle intellij-idea

我正在尝试使用 gradle 设置嵌套的多模块项目。 我有以下结构:

stock-client-root
|-- settings.gradle
|-- build.gradle
|-- stock-client
|   |-- build.gradle
|-- stock-ui
    |-- build.gradle

问题是,除了 spring boot 相关的东西,我不能导入 build.gradle 文件中声明的任何依赖项。

示例:我想使用 javafx。我在 stock-ui/build.gradle 文件中声明了它,但是当我想将它导入模块时,intelliJ 告诉我,它无法解决该依赖项。

我尝试了几乎所有方法来解决这个问题:

  • 通过 gradle 重新加载项目
  • 重启IDE
  • 使缓存无效 + 重建项目
  • 使用该结构创建了一个新项目并再次尝试

谁能指出问题出在哪里?

这里是文件的内容:

stock-client-root/settings.gradle

rootProject.name = 'stock-client-root'
include 'stock-client'
include 'stock-ui'

stock-client-root/build.gradle

subprojects {

    apply plugin: 'java'

    group = 'com.demo'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'

    configurations {
        compileOnly {
            extendsFrom annotationProcessor
        }
    }

    repositories {
        mavenCentral()
    }
}

stock-client/build.gradle

plugins {
    id 'org.springframework.boot' version '2.4.3'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.demo'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-webflux'

    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testImplementation 'io.projectreactor:reactor-test'
}

test {
    useJUnitPlatform()
}

stock-ui/build.gradle

plugins {
    id 'org.springframework.boot' version '2.4.3'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.demo'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

dependencies {
    implementation group: 'org.openjfx', name: 'javafx-graphics', version: '13.0.1'

    implementation 'org.springframework.boot:spring-boot-starter'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}

0 个答案:

没有答案
相关问题