наша весна-Загрузочный проект выглядит следующим образомSpring загрузки нескольких модулей Gradle Build - Multiple "Fat баночки"
project
|__ build.gradle
|__ settings.gradle
|__ module_a
|__ module_b
|__ ...
|__ module_a
|__ module_b
module_a содержит только класс SpringApplication и файл application.properties
Запуск ./ Конструкция gradlew прекрасно работает, но проблема в том, что для каждого модуля (около 10) градиль генерирует жировую флягу, включающую все зависимости.
Мы хотим только один дальнюю баночка (в модуле а)
buildscript {
ext {
springBootVersion = '1.2.0.RELEASE'
springLoadedVersion = '1.2.0.RELEASE'
}
repositories {
// NOTE: You should declare only repositories that you need here
mavenCentral()
maven { url "http://repo.spring.io/release" }
maven { url "http://repo.spring.io/milestone" }
maven { url "http://repo.spring.io/snapshot" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("org.springframework:springloaded:${springLoadedVersion}")
}
}
allprojects {
group = "example.group"
version = "0.0.1"
repositories() {
mavenCentral()
}
}
subprojects {
apply plugin: "groovy"
apply plugin: "eclipse"
eclipse {
classpath {
containers.remove("org.eclipse.jdt.launching.JRE_CONTAINER")
containers "org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"
}
}
apply plugin: "idea"
apply plugin: "java"
apply plugin: "spring-boot"
mainClassName = "MainClassName"
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
}
}
task wrapper(type: Wrapper) { gradleVersion = '2.2' }
Мы пытались добавить опции jar.enabled = ложь bootRepackage.enabled = ложь
в разделе подпроектов, но после этого проект больше не будет компилироваться.
Мой коллега сказал мне, что он уже попробовал этот подход, но проблема состоит в том, что автоматическое разрешение версии больше не работает. Поэтому вместо написания компиляции («org.springframework.boot: spring-boot-starter-web») ему пришлось написать компиляцию («org.springframework.boot: spring-boot-starter-web: 1.2.0.RELEASE») , Но я попробую еще раз и предоставит обратную связь – tplacht
Ваш коллега прав: автоматическое разрешение версии не будет работать с этим подходом. Если вам требуется автоматическое разрешение версии, вы оказались на правильных строках с отключением переупаковки, но я не думаю, что вам нужно также отключить банку. –
Добавление «bootRepackage.enabled = false» ко всем нашим подмодулям, сработавшим для нас. Я принял ваш ответ, потому что это тоже отлично работает, если вы не полагаетесь на автоматическое разрешение версии. благодаря – tplacht