【发布时间】:2018-11-11 03:54:42
【问题描述】:
在我的 gradle.build 文件中开始使用 spring boot gradle 插件后,在 jenkins 上构建失败。
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.2.RELEASE")
本地运行良好,包括构建、测试和 web 应用程序在 Jetty 上运行良好。唯一的问题是 Jenkins 在任务 artifactoryPublish 上的构建失败。它说:
File '/var/lib/jenkins/jobs/release-my-project/workspace/build/libs/workspace-0.2.1-SNAPSHOT.jar' does not exists, and need to be published!
不确定 gradle artifactoryPublish 任务发生了什么。我认为任务来自 Jenkins。
在使用spring boot gradle插件之前,我在gradle.build中的jar任务如下:
jar {
baseName = 'my-project'
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
configurations.runtime.collect {
it.isDirectory() ? it : zipTree(it)
}
}
manifest {
attributes 'Main-Class':'com.example.Application'
}
// Exclude manifest signature files
exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/LICENSE'
}
由于spring boot gradle插件禁用了jar任务,换成了bootjar任务,所以我配置bootjar任务如下:
bootJar {
baseName = 'my-project'
mainClassName = 'com.example.Application'
// Exclude manifest signature files
exclude 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA', 'META-INF/LICENSE'
}
我从 jenkins 日志中注意到的一件事是它说文件 workspace-0.2.1-SNAPSHOT.jar 不存在。似乎它正在寻找错误的文件。以前,它会查找正确的文件my-project-0.2.1-SNAPSHOT.jar。当我在本地构建时,创建了这个 jar 文件。不知道是什么让詹金斯寻找workspace-0.2.1-SNAPSHOT.jar。它应该是my-project,因为我在 bootJar 任务中定义了 baseName。
知道这里有什么问题吗?谢谢。
【问题讨论】:
标签: java spring-boot jenkins gradle build