等级:任务:在我用gradlew构建jar时跳过了jar

问题描述 投票:1回答:1

[我的问题是:为什么在gradlew构建中使用jar创建,当我在intellij的gradle窗口中单击jar时看到“ Task:jar SKIPPED”?以及如何在IntelliJ中修复它?

  • 只需使用spring初始化程序创建一些东西,然后将项目直接加载到intellij中。(它是org.springframework.boot,..'org.springframework.boot:spring-boot-starter-web')
  • 我不知道Task:jar SKIPPED(也不创建jar)
  • 然后我发现从控制台启动时得到了jar。
  • (并且jar运行良好,它会找到主类-即使在build.gradle中没有jar清单属性)

(昨天我在Maven中失败,“在.... .jar中没有主清单属性]

spring-boot gradle manifest gradlew
1个回答
1
投票

这是因为Springboot Gradle插件将创建一个bootJar任务,并且默认情况下将禁用jarwar任务,如下所述:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#packaging-executable-and-normal

因此您需要从IDE执行bootJar任务。执行gradlew build时,由于插件创建的任务相关性,任务bootJar自动执行。

[从控制台或IDE运行任务build时,您可以根据任务的依赖性查看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

您的发言

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

Springboot插件将自动为您配置,请参见:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#packaging-executable-configuring-main-class

© www.soinside.com 2019 - 2024. All rights reserved.