Spring Boot 2 - Change Jar Name
我正在Gradle项目中使用Spring Boot 2在Jenkins中构建jar版本,我想更改该jar文件的名称。
默认情况下,Spring Boot 2使用Gradle属性
但是,我想更改jar文件名,而不更改
这是
1 2 3 | bootJar { launchScript() } |
。
1 2 3 4 5 6 7 8 9 10 | springBoot { buildInfo { properties { artifact ="jarName" group ="groupName" name ="projectName" version ="1.0" } } } |
注意:
1 2 3 | bootJar { archiveFileName ="${archiveBaseName.get()}.${archiveExtension.get()}" } |
或Kotlin DSL等效项:
1 2 3 | tasks.getByName<org.springframework.boot.gradle.tasks.bundling.BootJar>("bootJar") { this.archiveFileName.set("${archiveBaseName.get()}.${archiveExtension.get()}") } |
请参阅:
-
https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar:archiveName
-
https://docs.gradle.org/current/userguide/lazy_configuration.html
感谢@AndyWilkinson的回答!
1 2 3 4 | bootJar { baseName"jarName" launchScript() } |
。
1 2 3 4 5 6 7 8 9 | springBoot { buildInfo { properties { group ="groupName" name ="projectName" version ="1.0" } } } |
由于
1 2 3 | bootJar { archiveName = 'whatever' } |
在这里看看。
对于Gradle 6
1 2 3 4 5 | bootJar { archiveBaseName = 'freeway-server' archiveVersion = '1.0.0' archiveFileName = 'freeway-server.jar' } |
获取:-
1 2 3 | System.out.print(bootJar.getArchiveBaseName().get()) System.out.print(bootJar.getArchiveVersion().get()) System.out.print(bootJar.getArchiveFileName().get()) |
您也可以使用:
1 2 3 | tasks.bootJar { archiveFileName.set("app.jar") } |
或与jar-plugin
1 2 3 | tasks.jar { archiveFileName.set("app.jar") } |
我的目标是从档案名称中删除版本。我是这样写的:
1 2 3 | bootJar { archiveName ="$baseName.$extension" } |
现在Gradle生成" project-name.jar "而不是" project-name-1.0-SNAPSHOT.jar "。此解决方案是常规解决方案,不会对任何特定的存档名称进行硬编码。
为我工作
1 2 3 4 5 | project(':org.awseome.subproject') { jar() { archiveFileName = 'nameOfJar.jar' } } |
在主build.gradle内部。二手
6.X级
Spring Boot 2.X
大多数人只是不想在jar名称中使用版本,而不是完全更改名称。
1 2 3 | tasks.withType<org.springframework.boot.gradle.tasks.bundling.BootJar> { archiveVersion.set("") } |
将使用Kotlin DSL进行此操作。最终名称由