什么方法更适合使用Gradle BOM和spring-boot(多模块应用程序)

时间:2019-04-03 13:24:46

标签: spring-boot gradle gradle-plugin spring-boot-gradle-plugin maven-bom

我使用Gradle构建我的spring-boot应用程序。我想要什么?

我有一个多模块应用程序,其中某些模块是spring-boot应用程序。我想在父项目的Gradle文件中获得BOM spring依赖关系,并使用所有没有版本的库。

现在我有下一个配置:

 buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        }
    }

apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

我在每个模块中重复此代码。我读了Gradle documentation ,看到的是:

  

插件本身不会自动应用Spring Dependency   管理插件了。相反,它确实对Spring有反应   依赖管理插件已通过以下方式应用和配置   spring-boot-dependency BOM(材料清单。我们将做更多   稍后将详细介绍BOM支持。)

下面是一个示例:

plugins {
    id 'java'
    id 'com.gradle.build-scan' version '1.16'
    id 'org.springframework.boot' version '2.0.5.RELEASE'
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-dependencies:2.0.5.RELEASE'
...

我很困惑。哪种变体更好?我尝试像本文档一样更改代码,但出现错误:

> Could not resolve all files for configuration ':my-server:compileClasspath'.
   > Could not find org.springframework.boot:spring-boot-starter-data-jpa:.
     Required by:
         project :my-server
   > Could not find org.springframework.boot:spring-boot-starter-cache:.
     Required by:
         project :my-server
   > Could not find org.springframework.boot:spring-boot-configuration-processor:.
     Required by:
         project :my-server
   > Could not find org.hibernate:hibernate-jpamodelgen:.
     Required by:
         project :my-server
   > Could not find org.projectlombok:lombok:.
     Required by:
         project :my-server
   > Could not find org.springframework.kafka:spring-kafka:.
     Required by:
         project :my-server

1 个答案:

答案 0 :(得分:0)

您仍然需要为依赖项定义repositories。将以下行添加到您的build.gradle。

repositories {
    mavenCentral()
}