Spring Boot 2-更改Jar名称

时间:2018-11-02 17:08:02

标签: spring-boot gradle build.gradle spring-boot-gradle-plugin

我正在Gradle项目中使用Spring Boot 2在Jenkins中进行jar的构建,我想更改该jar文件的名称。

默认情况下,Spring Boot 2使用Gradle属性<?php /** * Created by PhpStorm. * User: pankaj * Date: 11/2/2018 * Time: 10:01 PM */ require "simple_html_dom.php"; $html = file_get_html("https://drive.google.com/drive/folders/0B2t-Tmujl-IbeGFOUmo0aWVIeEU"); foreach ($html->find('div[class="l-Ab-T-r"]') as $folderName){ echo $folderName."<br/>"; } ,该属性可以在rootProject.name文件中设置。

但是,我想更改jar文件名,而不更改/settings.gradle

这是rootProject.name文件的bootJarspringBoot部分:

build.gradle

bootJar {
  launchScript()
}

注意:在阅读以下内容后,springBoot { buildInfo { properties { artifact = "jarName" group = "groupName" name = "projectName" version = "1.0" } } } 并没有像我期望的那样设置jar名称:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#integrating-with-actuator

8 个答案:

答案 0 :(得分:7)

由于bootJar任务扩展了Jar,因此您可以使用archiveName直接设置名称:

bootJar {
   archiveName = 'whatever'
}

看看here

答案 1 :(得分:5)

感谢@AndyWilkinson的答案!

bootJar {
  baseName "jarName"
  launchScript()
}

springBoot {
  buildInfo {
    properties {
      group = "groupName"
      name = "projectName"
      version = "1.0"
    }
  }
}

答案 2 :(得分:4)

archiveFileName是新的热点。其他所有东西都已弃用。

bootJar {
   archiveFileName = "$baseName.$extension"
}

另外,baseNameextention说它们已被弃用,但是它们的替代物archiveBaseNamearchiveExtention目前在gradle 5.1中对我来说是乱码。

请参阅:https://docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar:archiveName

答案 3 :(得分:3)

我的目标是从档案名称中删除版本。我是这样做的:

EXPECT_THAT

现在Gradle生成“ project-name.jar”而不是“ project-name-1.0-SNAPSHOT.jar”。此解决方案是常规解决方案,不会对任何特定的存档名称进行硬编码。

答案 4 :(得分:2)

对于Gradle 6

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())

答案 5 :(得分:2)

您还可以使用:

tasks.bootJar {
    archiveFileName.set("app.jar")
}

或使用jar插件

tasks.jar {
    archiveFileName.set("app.jar")
}

答案 6 :(得分:0)

大多数人只是不想在jar名称中使用版本,而不是完全更改名称。

tcp[(((tcp[12]&0xf0)>>4)*4)+2:2]=26

将使用Kotlin DSL进行此操作。最终名称由tasks.withType<org.springframework.boot.gradle.tasks.bundling.BootJar> { archiveVersion.set("") } 给出。

答案 7 :(得分:0)

为我工作

project(':org.awseome.subproject') {
 jar() {
     archiveFileName = 'nameOfJar.jar'
 }
}

在主要build.gradle内部。已使用

6.X级 Spring Boot 2.X