Multi-Gradle с вопросом о конфигурации Spring BootJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Multi-Gradle с вопросом о конфигурации Spring Boot

Сообщение Anonymous »

Я ищу объяснение, почему мне нужно иметь build.gradle в моем сервисном каталоге, чтобы корневой build.gradle не рассматривал его как сборочный проект:
Мой каталог:

Код: Выделить всё

root:
|-> services
|-> gateway
|-> (under the normal folder structure) GatewayApplication.java (Where my @SpringBootApplication is)
|-> build.gradle
|-> userService
|-> UserServiceApplication.java (Where my @SpringBootApplication is)
|-> build.gradle
|-> build.gradle (the gradle file in question)
|-> (root's) build.gradle
|-> settings.gradle
Мои настройки.gradle

Код: Выделить всё

rootProject.name = 'black-creek'
// I thought that these would dictate that it where these directories, gateway and userService where the only buildable gradle projects
include 'services:gateway'
include 'services:userService'
корневой build.gradle:

Код: Выделить всё

plugins {
id 'java'
id 'org.springframework.boot' version '4.0.0' apply false
id 'io.spring.dependency-management' version '1.1.7' apply false
}

allprojects {
group = 'ciallsoftware'
version = '0.0.1-SNAPSHOT'
}

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

java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}

repositories {
mavenCentral()
}

dependencies {
developmentOnly 'org.springframework.boot:spring-boot-devtools'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
useJUnitPlatform()
}
}
Каждый проект службы имеет собственный build.gradle для своих конкретных зависимостей. Поэтому я не буду их публиковать.
Если бы я не включил build.gradle в корень каталога службы, я бы постоянно получал следующую ошибку:

Код: Выделить всё

./gradlew bR
> Task :services:bootRun FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':services:bootRun'.
> Failed to query the value of task ':services:bootRun' property 'mainClass'.
> Main class name has not been configured and it could not be resolved from classpath
Но я обнаружил, что build.gradle обрабатывает мой каталог сервисов как проект, который можно построить, хотя я думал, что в settings.gradle я продиктовал подкаталоги, то есть сервисы:шлюз, а не каталог сервисов. Мне пришлось включить в рассматриваемый build.gradle:

Код: Выделить всё

bootJar {
enabled = false
}
bootRun {
enabled = false
}
jar {
enabled = false
}
Думаю, я просто не понимаю, почему мой сервисный каталог рассматривается как проект, который можно построить, и почему мне нужно включить то, что было напечатано чуть выше, чтобы предотвратить это.
Любое объяснение/понимание было бы полезно.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... g-question
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»