我有一个多模块项目,根目录中有这样的build.gradle:
plugins {
id "io.spring.dependency-management" version "1.1.3"
id "org.springframework.boot" version "3.1.3" apply false
}
allprojects {
apply plugin: 'java'
group 'com.epam.esm'
sourceCompatibility = '17'
targetCompatibility = '17'
repositories {
mavenCentral()
}
}
dependencyManagement {
dependencies {
dependency 'org.projectlombok:lombok:1.18.26'
dependency 'org.springframework.boot:spring-boot-starter-web:3.1.3'
dependency 'org.springframework.boot:spring-boot-starter:3.1.3'
dependency 'com.fasterxml.jackson.core:jackson-databind:2.14.2'
dependency 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2'
dependency 'org.mapstruct:mapstruct-processor:1.5.3.Final'
dependency 'org.mapstruct:mapstruct:1.5.3.Final'
dependency 'org.zalando:problem-spring-web:0.27.0'
dependency 'com.amazonaws:aws-java-sdk-s3:1.12.6'
}
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2022.0.3'
}
}
还有我的子模块的
build.gradle
:
dependencies {
implementation 'org.projectlombok:lombok'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'com.fasterxml.jackson.core:jackson-databind'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
implementation 'org.mapstruct:mapstruct-processor'
implementation 'org.mapstruct:mapstruct'
implementation 'org.zalando:problem-spring-web'
implementation 'com.amazonaws:aws-java-sdk-s3'
}
不幸的是我得到了 `任务 ':aws-utils:compileJava' 执行失败。
无法解析配置“:aws-utils:compileClasspath”的所有文件。 找不到 org.projectlombok:lombok:。 要求者: 项目:aws-utils 找不到 org.springframework.boot:spring-boot-starter-web:。 要求者: 项目:aws-utils 找不到 org.springframework.boot:spring-boot-starter:。 要求者: 项目:aws-utils`
我尝试了
clean build
,也用了--refresh-dependencies
为了使
io.spring.dependency-management
插件正常工作,您需要将其应用到您的所有项目(或所有子项目,具体取决于您所需的设置)。
为了实现这一点,请相应地更改您的根 gradle.build 文件:
plugins {
id "io.spring.dependency-management" version "1.1.3"
id "org.springframework.boot" version "3.1.3" apply false
}
allprojects {
apply plugin: 'io.spring.dependency-management'
apply plugin: 'java'
group 'com.epam.esm'
sourceCompatibility = '17'
targetCompatibility = '17'
repositories {
mavenCentral()
}
dependencyManagement {
dependencies {
dependency 'org.projectlombok:lombok:1.18.26'
dependency 'com.fasterxml.jackson.core:jackson-databind:2.14.2'
dependency 'org.springframework.boot:spring-boot-starter-web:3.1.3'
dependency 'org.springframework.boot:spring-boot-starter:3.1.3'
dependency 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2'
dependency 'org.mapstruct:mapstruct-processor:1.5.3.Final'
dependency 'org.mapstruct:mapstruct:1.5.3.Final'
dependency 'org.zalando:problem-spring-web:0.27.0'
dependency 'com.amazonaws:aws-java-sdk-s3:1.12.6'
}
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2022.0.3'
}
}
}
请记住,如果您使用
org.springframework.boot
插件,定义 Spring Boot Starter 项目版本是多余的。为了进一步简化你的根 build.gradle 文件,你也可以应用 org.springframework.boot
插件,如下所示:
plugins {
id "io.spring.dependency-management" version "1.1.3"
id "org.springframework.boot" version "3.1.3" apply false
}
allprojects {
apply plugin: 'io.spring.dependency-management'
apply plugin: 'org.springframework.boot'
apply plugin: 'java'
group 'com.epam.esm'
sourceCompatibility = '17'
targetCompatibility = '17'
repositories {
mavenCentral()
}
dependencyManagement {
dependencies {
dependency 'org.projectlombok:lombok:1.18.26'
dependency 'com.fasterxml.jackson.core:jackson-databind:2.14.2'
dependency 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2'
dependency 'org.mapstruct:mapstruct-processor:1.5.3.Final'
dependency 'org.mapstruct:mapstruct:1.5.3.Final'
dependency 'org.zalando:problem-spring-web:0.27.0'
dependency 'com.amazonaws:aws-java-sdk-s3:1.12.6'
}
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:2022.0.3'
}
}
}
请注意,
dependencyManagement
部分中与 spring 启动器相关的依赖声明已被删除。
如果您打算在子模块中定义所有依赖项,并为项目设置保留根目录,则可以将与
apply plugin
和整个 dependencyManagement
clojure 相关的部分移动到 subprojects {}