Какой способ лучше использовать gradle BOM и spring-boot (многомодульное приложение)

Я использую Gradle для создания своего spring-boot приложения. Чего я хочу?

У меня есть многомодульное приложение, в котором некоторые модули являются spring-boot приложениями. Я хочу получить BOM пружинных зависимостей в файле Gradle родительского проекта и использовать все библиотеки без версий.

Теперь у меня следующие конфиги:

 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 документацию и увидел следующее:

Сам плагин больше не применяет плагин Spring Dependency Management автоматически. Вместо этого он реагирует на применение и настройку плагина Spring Dependency Management с использованием спецификации spring-boot-dependencies (список материалов. Мы более подробно рассмотрим поддержку спецификации позже в этом посте).

И вот пример ниже:

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

person ip696    schedule 03.04.2019    source источник


Ответы (1)


Вам все еще нужно определить repositories для ваших зависимостей. Добавьте следующую строку в свой build.gradle.

repositories {
    mavenCentral()
}
person user3038039    schedule 03.04.2019