Spring boot gradle:Task:jar在我使用gradlew构建获取jar时被跳过

Spring boot gradle:Task:jar在我使用gradlew构建获取jar时被跳过,spring-boot,gradle,manifest,gradlew,Spring Boot,Gradle,Manifest,Gradlew,我的问题是:当我在intellij的gradle窗口中单击jar时,我看到“Task:jar SKIPPED”,为什么jar的创建与gradlew build一起工作?我如何在IntelliJ中修复它 只是用spring初始值设定项创建了一些东西,并按原样在intellij中加载了项目。 (它是org.springframework.boot,…'org.springframework.boot:springbootstarterweb') 我想知道任务:跳过jar(也不创建jar) 然后我发

我的问题是:当我在intellij的gradle窗口中单击jar时,我看到“Task:jar SKIPPED”,为什么jar的创建与gradlew build一起工作?我如何在IntelliJ中修复它

  • 只是用spring初始值设定项创建了一些东西,并按原样在intellij中加载了项目。 (它是org.springframework.boot,…'org.springframework.boot:springbootstarterweb')
  • 我想知道任务:跳过jar(也不创建jar)
  • 然后我发现当我从控制台启动时,我得到了这个罐子
  • (jar运行良好,它可以找到主类——即使build.gradle中没有jar manifest属性)

(昨天我在maven中失败了,因为“在…jar中没有主清单属性)

这是因为Springboot Gradle插件将创建一个
bootJar
任务,默认情况下将禁用
jar
war
任务,如下所述:

因此,您需要从IDE执行
bootJar
任务。当执行
gradlew build
时,由于插件创建的任务依赖关系,任务
bootJar
会自动执行

运行task
build
(从控制台或IDE)时,您可以根据任务依赖关系查看Gradle执行的任务,例如:

> Task :backend:compileJava
> Task :backend:processResources
> Task :backend:classes
> Task :backend:bootJar      ## <== this is the task register by Springboot plugin, which produces the "Fat/executable" jar
> Task :backend:jar SKIPPED  ## <== task disabled by Springboot plugin
> Task :backend:assemble
> Task :backend:processTestResources
> Task :backend:testClasses
> Task :backend:test
> Task :backend:check
> Task :backend:build
>任务:后端:compileJava
>任务:后端:processResources
>任务:后端:类
>任务:后端:bootJar##任务:后端:jar跳过##任务:后端:组装
>任务:后端:processTestResources
>任务:后端:TestClass
>任务:后端:测试
>任务:后端:检查
>任务:后端:构建
谢谢你的评论

jar运行良好,它找到了主类——即使没有jar清单 build.gradle中的属性

Springboot插件将自动为您配置,请参阅:

编辑27-05-2021
从Springboot 2.5开始,
jar
在默认情况下不再被禁用。请参阅发行说明中的更多详细信息,欢迎使用SO。到目前为止,您到底尝试了什么?您的项目使用的是Gradle还是Maven?您运行了哪些命令以及如何运行?请查看以澄清您的问题。谢谢。这挽救了我的一天!Gradle非常聪明,maven的情况并非如此。