Spring Boot 2.5.0 生成普通.jar文件。我可以删除它吗?

2022-08-31 10:38:54

在Spring Boot 2.5.0更新之后,它会与通常的文件一起生成文件。我可以禁止 gradle 生成文件吗?我使用Gradle 7.0.2。myprogram-0.0.1-plain.jarmyprogram-0.0.1.jar*.plain.jar

我得到的:

build/
  libs/
    myprogram-0.0.1.jar
    myprogram-0.0.1-plain.jar

我想要什么:

build/
  libs/
    myprogram-0.0.1.jar

build.gradle:

plugins {
    id 'org.springframework.boot' version '2.5.0'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

test {
    useJUnitPlatform()
}


答案 1

这是Spring Boot 2.5.0中的一个变化。

正如@ThomasKläger所指出的:您可以在配置中设置它。build.gradle

build.gradle

jar {
    enabled = false
}

对于 Kotlin 开发人员:

tasks.getByName<Jar>("jar") {
    enabled = false
}

或者,您可以运行该任务。它只生成默认的可运行 jar。bootJar


答案 2

尝试使用以下设置:

jar {
   enabled = true
   archiveClassifier = '' //use empty string
}

因为org.springframework.boot.gradle.plugin.JavaPluginAction.java

private void classifyJarTask(Project project) {
    project.getTasks().named(JavaPlugin.JAR_TASK_NAME, Jar.class)
            .configure((task) -> task.getArchiveClassifier().convention("plain"));
}

从源文件:spring-boot-gradle-plugin

看:


推荐