Java Gradle在子项目中不提供依赖项

Java Gradle在子项目中不提供依赖项,java,gradle,dependencies,multi-module,Java,Gradle,Dependencies,Multi Module,我在gradle项目中遇到了一个依赖性问题,我不知道如何解决它 我有一个根项目“projectroot”和两个子项目“project-sub-a”和“project-sub-b”。 “project-sub-a”与“project-sub-b”有依赖关系 结构是: project-root |-settings.gradle |-build.gradle project-sub-a |-build.gradle project-sub-b include 'project-sub-a', 'p

我在gradle项目中遇到了一个依赖性问题,我不知道如何解决它

我有一个根项目“projectroot”和两个子项目“project-sub-a”和“project-sub-b”。 “project-sub-a”与“project-sub-b”有依赖关系

结构是:

project-root
|-settings.gradle
|-build.gradle
project-sub-a
|-build.gradle
project-sub-b
include 'project-sub-a', 'project-sub-b'
plugins {
    id "io.spring.dependency-management" version "1.0.8.RELEASE"
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'io.spring.dependency-management'
    apply plugin: 'java-library'

    repositories {
        mavenCentral()
    }

    dependencies {
        // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-gradle-plugin
        compile group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: '2.1.7.RELEASE', ext: 'pom'
        implementation 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
        implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.3'
    }

    dependencyManagement {
        imports {
            mavenBom("org.springframework.boot:spring-boot-dependencies:2.2.6.RELEASE")
        }
    }
}

plugins {
    id 'org.springframework.boot' version '2.2.6.RELEASE'
}

apply plugin: 'org.springframework.boot'

dependencies {
    implementation project(':connection-service-common')
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
项目根目录:设置。渐变:

project-root
|-settings.gradle
|-build.gradle
project-sub-a
|-build.gradle
project-sub-b
include 'project-sub-a', 'project-sub-b'
plugins {
    id "io.spring.dependency-management" version "1.0.8.RELEASE"
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'io.spring.dependency-management'
    apply plugin: 'java-library'

    repositories {
        mavenCentral()
    }

    dependencies {
        // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-gradle-plugin
        compile group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: '2.1.7.RELEASE', ext: 'pom'
        implementation 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
        implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.3'
    }

    dependencyManagement {
        imports {
            mavenBom("org.springframework.boot:spring-boot-dependencies:2.2.6.RELEASE")
        }
    }
}

plugins {
    id 'org.springframework.boot' version '2.2.6.RELEASE'
}

apply plugin: 'org.springframework.boot'

dependencies {
    implementation project(':connection-service-common')
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
项目根目录:build.gradle:

project-root
|-settings.gradle
|-build.gradle
project-sub-a
|-build.gradle
project-sub-b
include 'project-sub-a', 'project-sub-b'
plugins {
    id "io.spring.dependency-management" version "1.0.8.RELEASE"
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'io.spring.dependency-management'
    apply plugin: 'java-library'

    repositories {
        mavenCentral()
    }

    dependencies {
        // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-gradle-plugin
        compile group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: '2.1.7.RELEASE', ext: 'pom'
        implementation 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
        implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.3'
    }

    dependencyManagement {
        imports {
            mavenBom("org.springframework.boot:spring-boot-dependencies:2.2.6.RELEASE")
        }
    }
}

plugins {
    id 'org.springframework.boot' version '2.2.6.RELEASE'
}

apply plugin: 'org.springframework.boot'

dependencies {
    implementation project(':connection-service-common')
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
project-sub-a:build.gradle:

project-root
|-settings.gradle
|-build.gradle
project-sub-a
|-build.gradle
project-sub-b
include 'project-sub-a', 'project-sub-b'
plugins {
    id "io.spring.dependency-management" version "1.0.8.RELEASE"
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'io.spring.dependency-management'
    apply plugin: 'java-library'

    repositories {
        mavenCentral()
    }

    dependencies {
        // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-gradle-plugin
        compile group: 'org.springframework.boot', name: 'spring-boot-gradle-plugin', version: '2.1.7.RELEASE', ext: 'pom'
        implementation 'org.projectlombok:lombok'
        annotationProcessor 'org.projectlombok:lombok'
        implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.3'
    }

    dependencyManagement {
        imports {
            mavenBom("org.springframework.boot:spring-boot-dependencies:2.2.6.RELEASE")
        }
    }
}

plugins {
    id 'org.springframework.boot' version '2.2.6.RELEASE'
}

apply plugin: 'org.springframework.boot'

dependencies {
    implementation project(':connection-service-common')
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
/gradlew build
之后,我得到以下错误:

> Task :project-sub-b:compileJava
.../Pojo.java: error: package com.fasterxml.jackson.annotation does not exist
import com.fasterxml.jackson.annotation.JsonProperty;

and more ...


有人知道如何解决这个问题吗?谢谢

看起来您的文件丢失了:

 'com.fasterxml.jackson.core:jackson-annotations:2.10.3'
哪个(和其他几个jackson罐子)是

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

这就是项目a不抱怨的原因。因此,无需将jackson放入
子项目中。子项目a无论如何都会得到它。

看起来缺少您的:

 'com.fasterxml.jackson.core:jackson-annotations:2.10.3'
哪个(和其他几个jackson罐子)是

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

这就是项目a不抱怨的原因。因此,无需将jackson放入
子项目中。子项目a已经收到了。

谢谢。现在它工作了!我从project root:build.gradle中删除了'implementation group:'com.fasterxml.jackson.core',名称:'jackson core',版本:'2.10.3',并将'implementation'org.springframework.boot:spring boot starter web''从project-sub-a:build.gradle移动到project root:build.gradle。但我仍然不明白为什么它以前不起作用。也许“com.fasterxml.jackson.core:jackson注释:2.10.3”是错误的。谢谢。现在它工作了!我从project root:build.gradle中删除了'implementation group:'com.fasterxml.jackson.core',名称:'jackson core',版本:'2.10.3',并将'implementation'org.springframework.boot:spring boot starter web''从project-sub-a:build.gradle移动到project root:build.gradle。但我仍然不明白为什么它以前不起作用。也许“com.fasterxml.jackson.core:jackson注释:2.10.3”是错误的。