Gradle 子项目不会编译依赖于子项目

时间:2021-03-18 15:19:48

标签: spring-boot gradle

我有以下项目结构,gradle 6.8.3 版本和 spring-boot 2.4.3

Project-A
|
|___ Project B
|
|___ Project C

项目 A 是根项目,项目 B 依赖于项目 C。

项目 C build.gradle

plugins {

    id 'org.springframework.boot' version '2.4.3'

    id 'io.spring.dependency-management' version '1.0.11.RELEASE'

    id 'java'

    id 'maven'

}


group = 'com.test'

version = '0.0.1-SNAPSHOT'

sourceCompatibility = '11'


configurations {

    compileOnly {

        extendsFrom annotationProcessor

    }

}


repositories {

    mavenCentral()

    mavenLocal()

}


dependencies {

    implementation 'org.springframework.boot:spring-boot-starter'

    compileOnly 'org.projectlombok:lombok'

    annotationProcessor 'org.projectlombok:lombok'

    implementation 'org.springframework.boot:spring-boot-starter-logging'

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

}


test {

    useJUnitPlatform()

}

项目 B build.gradle 文件

plugins {

    id 'org.springframework.boot' version '2.4.3'

    id 'io.spring.dependency-management' version '1.0.11.RELEASE'

    id 'java'

    id 'maven'

}


group = 'com.test'

version = '0.0.1-SNAPSHOT'

sourceCompatibility = '11'


configurations {

    compileOnly {

        extendsFrom annotationProcessor

    }

}


repositories {

    mavenCentral()

    mavenLocal()

}


dependencies {

    implementation project(':PROJECT-C')

    implementation 'org.springframework.boot:spring-boot-starter'

    compileOnly 'org.projectlombok:lombok'

    annotationProcessor 'org.projectlombok:lombok'

    implementation 'org.springframework.boot:spring-boot-starter-logging'

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

    implementation 'project-c:0.0.0-SNAPSHOT'

}


test {

    useJUnitPlatform()

}

尝试构建 project-c 时抛出

以下是更多信息的详细信息。

  • JDK11
  • IntelliJ 创意

抛出错误

  • 出了什么问题: 评估根项目“project-c”时出现问题。
<块引用>

在根项目“project-c”中找不到路径为“:project-b”的项目。

非常感谢任何帮助。

根级别的settings.gradle文件

rootProject.name = 'Project-A'
include 'Project-B', 'Project-C'

此外,我在所有子模块中也有一个 settings.gradle 文件。子模块中settings.gradle的内容只包含项目名称

1 个答案:

答案 0 :(得分:0)

假设您在 settings.gradle 文件中的设置是正确的:

在项目 B build.gradle 文件中的依赖项块中,而不是

implementation project(':PROJECT-C')

试试

implementation project(':Project-A:Project-C') 

因为项目 a 是根项目。