spring-boot - gradle: Task :jar SKIPPED 当我使用 gradlew build 获取 jar 时

标签 spring-boot gradle manifest gradlew

我的问题是:当我在 intellij 的 gradle 窗口中单击 jar 时,为什么 jar-creation 与 gradlew build 一起工作,而我看到“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 manifest 属性)

  • (昨天我在 maven 中失败了,“.jar 中没有主要 list 属性”)

    最佳答案

    这是因为 Springboot Gradle 插件会创建一个 bootJar任务,默认情况下将禁用 jarwar任务,如下所述:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#packaging-executable-and-normal
    所以你需要执行bootJar任务,来自 IDE。执行 gradlew build 时,任务bootJar由于插件创建的任务依赖关系,会自动执行。
    运行任务时 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
    
    对于您的评论

    the jar runs fine, it finds the main class - even without jar manifest attribute in build.gradle


    Springboot 插件会自动为你配置,见:https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/html/#packaging-executable-configuring-main-class
    编辑 27-05-2021
    从 Springboot 2.5 开始,jar默认情况下不再禁用。在发行说明中查看更多详细信息 here

    关于spring-boot - gradle: Task :jar SKIPPED 当我使用 gradlew build 获取 jar 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62360840/

    相关文章:

    java - 将 GET 响应从 restTemplate 转换为自定义类

    android - 如何在Android Studio终端中运行gradle命令?

    java - Spring Boot在Chrome中抛出ERR_TOO_MANY_REDIRECTS

    java - 如何将本地 .jar 文件依赖项添加到 build.gradle 文件?

    Android Studio "Build - make project"不创建jar

    java - 没有主要 list 属性,在 jar 中

    java - 验证 OSGi list

    java - Android Actionbar 不应用自定义图像背景

    java - springboot生成的JSON中缺少名称标签

    Spring Boot REST 路径映射