我在 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
项目根目录:settings.gradle:
include 'project-sub-a', 'project-sub-b'
项目根目录: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 ...
有人知道如何解决这个问题吗?谢谢。
最佳答案
看起来你失踪了:
'com.fasterxml.jackson.core:jackson-annotations:2.10.3'
which(以及其他一些 jackson jars)是 的传递依赖
'org.springframework.boot:spring-boot-starter-web'
这就是项目 a 不提示的原因。因此,无需将 Jackson 放入子项目
中。无论如何,子项目 a 都会得到它。
关于java - Gradle 不提供子项目中的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61714792/