Мультимодульное приложение Spring Boot gradle - PullRequest
1 голос
/ 02 марта 2020

У меня есть приложение весенней загрузки (gradle) с несколькими модулями, но у меня возникают проблемы при сборке приложения. Ниже мой gradle

build.gradle (Основное приложение)

plugins {
    id 'org.springframework.boot' version '2.2.4.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'net.sagati'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    compile project(':my-pet-clinic-data')
    compile project(':my-pet-clinic-web')
}

test {
    useJUnitPlatform()
}

build.gradle - Уровень данных. Первый модуль

plugins {
    id 'java'
}

group 'net.sagati'
version '0.0.1-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'com.h2database:h2'
    runtimeOnly 'mysql:mysql-connector-java'
    annotationProcessor 'org.projectlombok:lombok'
    compileOnly 'org.projectlombok:lombok'
}
test {
    useJUnitPlatform()
}
bootJar {
    enabled = false
}

jar {
    enabled = true
}

build.gradle - веб-слой 2-й модуль

plugins {
    id 'java'
}

group 'net.sagati'
version '0.0.1-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
test {
    useJUnitPlatform()
}
bootJar {
    enabled = false
}

jar {
    enabled = true
}

************* *******сообщение об ошибке ****************************************

A problem occurred evaluating project ':my-pet-clinic-data'.
> Could not find method bootJar() for arguments [build_iptt1011gxtkxqsop7ht18yc$_run_closure4@45139c47] on project ':my-pet-clinic-data' of type org.gradle.api.Project.

Любая помощь будет оценена.

обновление

после удаления

bootJar {
    enabled = false
}

Я получаю ошибку ниже

Execution failed for task ':my-pet-clinic-data:compileJava'.
> Could not resolve all files for configuration ':my-pet-clinic-data:compileClasspath'.
   > Could not find org.projectlombok:lombok:.
     Required by:
         project :my-pet-clinic-data
   > Could not find org.springframework.boot:spring-boot-starter-data-jpa:.
     Required by:
         project :my-pet-clinic-data

1 Ответ

0 голосов
/ 03 марта 2020

Обновленная проблема вызвана отсутствием какой-либо версии для зависимостей.

При применении подключаемого модуля Spring boot Gradle он применяет подключаемый модуль управления зависимостями Spring и настраивает загрузочную спецификацию Spring. Это объясняется в документации .

Однако ваши данные и веб-проекты используют только плагин java и, следовательно, не поддерживают спецификацию. Я бы порекомендовал посмотреть на поддержку Gradle BOM . Альтернативу, с затратами на производительность, можно найти в документации Spring, связанной выше, раздел 3.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...