Gradle在子项目中不提供依赖性。

问题描述 投票:0回答:1

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

我有一个根项目 "project-root "和两个子项目 "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

project-root:settings.gradle:

include 'project-sub-a', 'project-sub-b'

project-root:build.gradle。

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")
        }
    }
}

project-sub-a:build.gradle。

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 ...

有谁知道如何解决这个问题?谢谢。

java gradle dependencies multi-module
1个回答
0
投票

看起来你的缺少。

 'com.fasterxml.jackson.core:jackson-annotations:2.10.3'

which(和其他一些jackson jars)是一个转折性的依赖关系。

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

这就是为什么A项目不抱怨的原因。正因为如此,没有必要把杰克逊在。subprojects. 子项目a正在得到它反正。

© www.soinside.com 2019 - 2024. All rights reserved.