Мы используем Gradle 4.8.1 для генерации исполняемых jar-файлов Spring Boot. Это прекрасно работает на местном уровне. Однако мы используем Teamcity для публикации наших артефактов в Artifactory.
Проблема в том, что, насколько я понимаю, задача artifactoryPublish вызывает задачу jar в Gradle, которая загружает артефакты из архива. Таким образом, независимо от того, вызывает ли teamcity задачу «сборка», задачу «bootjar» или задачу «сборка», плагин артефакта в конце получает вывод задачи «jar» и публикует ее, тогда как мы Я хотел бы получить результат задачи "bootjar" (толстый кувшин) в артефакте.
Есть ли способ заставить artifactoryPublish запускать bootjar вместо jar? Или для задачи баночки также создать толстую банку? Или я должен рассмотреть другой подход?
Вот мой build.gradle из одного из подпроектов
plugins {
id "org.springframework.boot" version "2.0.4.RELEASE"
id "io.spring.dependency-management" version "1.0.6.RELEASE"
}
apply plugin: 'java'
repositories {
mavenCentral()
}
description = 'atlas-data-service'
// Dynamically insert TeamCity build number if available
if (hasProperty("teamcity")) {
version = teamcity["build.number"]
println "Release version with TeamCity build number passed into gradle is " + version
} else {
// Take the default appVersion defined in top level build.gradle when building outside of TeamCity
version = "$appVersion"
}
jar {
baseName = 'data-service'
enabled = true
}
bootJar {
mainClassName = 'c.m.f.a.dataservice.AtlasDataServiceApplication'
baseName = 'data-service'
enabled = true
classifier = 'boot'
}
dependencies {
...
}