SpringBoot2.5.0生成plain.jar文件。我可以删除它吗?
在 Spring Boot 2.5.0 更新之后,它会myprogram-0.0.1-plain.jar在通常的myprogram-0.0.1.jar. 我可以禁止 gradle 生成*.plain.jar文件吗?我使用 Gradle 7.0.2。
我得到的:
build/
libs/
myprogram-0.0.1.jar
myprogram-0.0.1-plain.jar
我想要的是:
build/
libs/
myprogram-0.0.1.jar
构建.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()
}
回答
这是 Spring Boot 2.5.0 中的一个变化。
正如@ThomasKläger 指出的那样:您可以在build.gradle配置中进行设置。
构建.gradle
jar {
enabled = false
}
对于 Kotlin 开发人员:
tasks.getByName<Jar>("jar") {
enabled = false
}
或者,您可以运行该bootJar任务。它只生成默认的可运行 jar。
- 使用 `jar {enabled = false }` 它根本不生成 jar(不仅使用 `plain` 后缀)。这怎么可能是一个可以接受的答案?
回答
尝试使用以下设置:
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 源文件:https ://repo1.maven.org/maven2/org/springframework/boot/spring-boot-gradle-plugin/2.5.0/spring-boot-gradle-plugin-2.5
.0-sources.jar
请参阅:https : //docs.gradle.org/current/dsl/org.gradle.api.tasks.bundling.Jar.html#org.gradle.api.tasks.bundling.Jar :
archiveClassifier
THE END
二维码