Я перенес наше приложение из Spring Boot 1.5 в Spring Boot 2.2. Я борюсь с нашим телосложением. В прошлом мы использовали следующее, чтобы получить исполняемый файл Jar со всеми зависимостями Spring для отдельного запуска наших интеграционных тестов в нашем конвейере CI:
task integrationBootRepackage(type: BootRepackage, dependsOn: integrationJar) {
enabled = true
withJarTask = integrationJar
customConfiguration = "integrationRuntime"
mainClass = "io.test.IntegrationApplicationKt"
}
assemble.dependsOn integrationBootRepackage
Задача интеграции с Jar создает базовый файл c с нашей интеграцией тестовые занятия и основные занятия. В прошлом мы могли «улучшить» эту банку с помощью задачи перепаковки. Но в Spring Boot 2.2 эта задача больше не существует. Spring Documentation только говорит о том, как вы можете создать свои основные JAR-файлы.
С Maven, кажется, все еще доступна переупаковка, так как следующий раздел упоминается в документации по плагину Spring Maven :
Вы также можете использовать ту же конфигурацию, если вы хотите переупаковать вторичный артефакт так же, как заменяется основной артефакт. Следующая конфигурация устанавливает / развертывает один классифицированный артефакт задачи с переупакованным приложением:
Кто-нибудь знает, почему переупаковка все еще доступна с Maven, но не с gradle? Или я просто не могу найти нужную документацию для этого?
Я также пробовал другие подходы, такие как прямое наследование нашей задачиgrationJar от BootJar
, но она не помещает пружинные зависимости в jar.
val integrationJar = tasks.register("integrationJar", BootJar::class) {
description = "Assembles a jar archive containing the integration classes."
group = "build"
mainClassName = "io.test.IntegrationApplicationKt"
archiveAppendix.set("integration")
from(sourceSets!!["main"].output)
from(sourceSets["integration"].output)
}
Может ли кто-нибудь помочь с тем, как я могу получить перепакованный Spring-файл IntegrationJar с Spring Boot 2.2 и Gradle с Kotlin DSL?