gpt4 book ai didi

spring-boot - 我如何让 Teamcity Artifactory 插件在 Gradle 中调用 bootJar 而不是 Jar?

转载 作者:行者123 更新时间:2023-12-03 02:58:26 24 4
gpt4 key购买 nike

我们正在使用 Gradle 4.8.1 生成 Spring Boot 可执行 jar。这在本地工作正常。但是,我们正在使用 Teamcity 将我们的 Artifactory 发布到 Artifactory 中。

据我了解,问题是“artifactoryPublish”任务调用 Gradle 中的“jar”任务,该任务从“Archives”上传 Artifactory 。因此,无论 teamcity 是否调用“assemble”任务、“bootjar”任务或“build”任务,artifactory 插件最终都会获取“jar”任务的输出并发布它,而我们我想在 artifactory 中获得“bootjar”任务(fat jar)的输出。

有什么方法可以强制 artifactoryPublish 运行 bootjar 而不是 jar ?或者也为 jar 任务创建一个 fat 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 {
...
}

最佳答案

这个问题来自去年,但会更新以防其他人遇到同样的问题。

我使用 Maven-publish 插件来完成这项工作。

https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#publishing-your-application-maven-publish

apply plugin: 'maven-publish'

publishing.publications {
bootJava(MavenPublication) {
artifact bootJar
}
}

关于spring-boot - 我如何让 Teamcity Artifactory 插件在 Gradle 中调用 bootJar 而不是 Jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52334822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com