Spring 引导 2 - 更改 Jar 名称
Spring Boot 2 - Change Jar Name
我在我的 Gradle 项目中使用 Spring Boot 2 在 Jenkins 中构建 jar,我想更改该 jar 文件的名称。
默认情况下,Spring Boot 2使用Gradle 属性 rootProject.name
,可以在/settings.gradle
文件中设置。
不过我想改jar文件名,不改rootProject.name
.
这是 build.gradle
文件中我的 bootJar
和 springBoot
部分:
bootJar {
launchScript()
}
.
springBoot {
buildInfo {
properties {
artifact = "jarName"
group = "groupName"
name = "projectName"
version = "1.0"
}
}
}
注意: artifact
没有像我预期的那样设置 jar 名称,阅读后:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#integrating-with-actuator
由于 bootJar
任务扩展 Jar
您可以使用 archiveName
直接设置名称:
bootJar {
archiveName = 'whatever'
}
看看here.
感谢@AndyWilkinson的解答!
bootJar {
baseName "jarName"
launchScript()
}
.
springBoot {
buildInfo {
properties {
group = "groupName"
name = "projectName"
version = "1.0"
}
}
}
我的目标是从存档名称中删除版本。我是这样做的:
bootJar {
archiveName = "$baseName.$extension"
}
现在 Gradle 生成 "project-name.jar" 而不是 "project-name-1.0-SNAPSHOT.jar"。此解决方案是通用的,不会对任何特定的存档名称进行硬编码。
archiveFileName
是新热点。其他所有内容均已弃用。
bootJar {
archiveFileName = "${archiveBaseName.get()}.${archiveExtension.get()}"
}
或等效的 Kotlin DSL:
tasks.getByName<org.springframework.boot.gradle.tasks.bundling.BootJar>("bootJar") {
this.archiveFileName.set("${archiveBaseName.get()}.${archiveExtension.get()}")
}
参见:
为Gradle6
bootJar {
archiveBaseName = 'freeway-server'
archiveVersion = '1.0.0'
archiveFileName = 'freeway-server.jar'
}
获取:-
System.out.print(bootJar.getArchiveBaseName().get())
System.out.print(bootJar.getArchiveVersion().get())
System.out.print(bootJar.getArchiveFileName().get())
您还可以使用:
tasks.bootJar {
archiveFileName.set("app.jar")
}
或者使用 jar-plugin
tasks.jar {
archiveFileName.set("app.jar")
}
大多数人只是希望jar名称中没有版本,而不是完全更改名称。
tasks.withType<org.springframework.boot.gradle.tasks.bundling.BootJar> {
archiveVersion.set("")
}
将使用 Kotlin DSL 来完成。最终名称由 tasks.bootJar.get().archiveFileName.get()
.
给出
为我工作
project(':org.awseome.subproject') {
jar() {
archiveFileName = 'nameOfJar.jar'
}
}
在主要 build.gradle 内部。二手
Gradle 6.X
Spring开机2.X
我在我的 Gradle 项目中使用 Spring Boot 2 在 Jenkins 中构建 jar,我想更改该 jar 文件的名称。
默认情况下,Spring Boot 2使用Gradle 属性 rootProject.name
,可以在/settings.gradle
文件中设置。
不过我想改jar文件名,不改rootProject.name
.
这是 build.gradle
文件中我的 bootJar
和 springBoot
部分:
bootJar {
launchScript()
}
.
springBoot {
buildInfo {
properties {
artifact = "jarName"
group = "groupName"
name = "projectName"
version = "1.0"
}
}
}
注意: artifact
没有像我预期的那样设置 jar 名称,阅读后:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#integrating-with-actuator
由于 bootJar
任务扩展 Jar
您可以使用 archiveName
直接设置名称:
bootJar {
archiveName = 'whatever'
}
看看here.
感谢@AndyWilkinson的解答!
bootJar {
baseName "jarName"
launchScript()
}
.
springBoot {
buildInfo {
properties {
group = "groupName"
name = "projectName"
version = "1.0"
}
}
}
我的目标是从存档名称中删除版本。我是这样做的:
bootJar {
archiveName = "$baseName.$extension"
}
现在 Gradle 生成 "project-name.jar" 而不是 "project-name-1.0-SNAPSHOT.jar"。此解决方案是通用的,不会对任何特定的存档名称进行硬编码。
archiveFileName
是新热点。其他所有内容均已弃用。
bootJar {
archiveFileName = "${archiveBaseName.get()}.${archiveExtension.get()}"
}
或等效的 Kotlin DSL:
tasks.getByName<org.springframework.boot.gradle.tasks.bundling.BootJar>("bootJar") {
this.archiveFileName.set("${archiveBaseName.get()}.${archiveExtension.get()}")
}
参见:
为Gradle6
bootJar {
archiveBaseName = 'freeway-server'
archiveVersion = '1.0.0'
archiveFileName = 'freeway-server.jar'
}
获取:-
System.out.print(bootJar.getArchiveBaseName().get())
System.out.print(bootJar.getArchiveVersion().get())
System.out.print(bootJar.getArchiveFileName().get())
您还可以使用:
tasks.bootJar {
archiveFileName.set("app.jar")
}
或者使用 jar-plugin
tasks.jar {
archiveFileName.set("app.jar")
}
大多数人只是希望jar名称中没有版本,而不是完全更改名称。
tasks.withType<org.springframework.boot.gradle.tasks.bundling.BootJar> {
archiveVersion.set("")
}
将使用 Kotlin DSL 来完成。最终名称由 tasks.bootJar.get().archiveFileName.get()
.
为我工作
project(':org.awseome.subproject') {
jar() {
archiveFileName = 'nameOfJar.jar'
}
}
在主要 build.gradle 内部。二手
Gradle 6.X Spring开机2.X