spring-boot - 没有可执行jar的Spring Boot 2 Gradle插件

标签 spring-boot gradle kotlin spring-boot-gradle-plugin

如何配置 Spring Boot Gradle 插件 2 以禁用 Gradle Script Kotlin 中的引导分发。

我想要的发行版是一个包含所有依赖项(和 jar)的程序集包 zip,位于 lib 文件夹中。

我已启用 Jar 任务并禁用了 bootJar 任务。

我的构建文件的当前源 https://github.com/Skatteetaten/mokey/blob/825a81f20c21a2220876a09ebf7f01fe7c61f2fd/build.gradle.kts

注意 aurora skatteetaten gradle 插件添加了分发机制。 https://github.com/Skatteetaten/aurora-gradle-plugin

最佳答案

配置应用程序插件后,Spring Boot 会创建一个额外的分发包,其中包含作为胖 jar 包的应用程序包。默认发行版保持不变,您应该可以在不禁用 Boot 发行版的情况下使用它。

默认分发依赖于标准的 jar 任务。 Spring Boot 的插件默认禁用此任务,因为假设您希望使用 bootJar 生成的 fat jar 代替。如果不是这种情况,您可以像这样重新启用 jar:

jar {
    enabled = true
}

进行此更改后,您可以运行 distZip 任务:

$: ./gradlew clean distZip --console=plain
:clean
:bootBuildInfo
:compileJava
:processResources
:classes
:jar
:startScripts
:distZip

BUILD SUCCESSFUL in 1s
7 actionable tasks: 7 executed

它将创建一个 zip,将应用程序及其所有依赖项打包为分发版的 lib 目录中的单独 jar。

$: unzip -l build/distributions/application-distribution-0.0.1-SNAPSHOT.zip
Archive:  build/distributions/application-distribution-0.0.1-SNAPSHOT.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  03-19-2018 07:31   application-distribution-0.0.1-SNAPSHOT/
        0  03-19-2018 07:31   application-distribution-0.0.1-SNAPSHOT/lib/
     1860  03-19-2018 07:31   application-distribution-0.0.1-SNAPSHOT/lib/application-distribution-0.0.1-SNAPSHOT.jar
      588  03-01-2018 05:24   application-distribution-0.0.1-SNAPSHOT/lib/spring-boot-starter-web-2.0.0.RELEASE.jar
      645  03-01-2018 05:24   application-distribution-0.0.1-SNAPSHOT/lib/spring-boot-starter-json-2.0.0.RELEASE.jar
      592  03-01-2018 05:23   application-distribution-0.0.1-SNAPSHOT/lib/spring-boot-starter-2.0.0.RELEASE.jar
      590  03-01-2018 05:24   application-distribution-0.0.1-SNAPSHOT/lib/spring-boot-starter-tomcat-2.0.0.RELEASE.jar
  1117582  01-08-2018 11:43   application-distribution-0.0.1-SNAPSHOT/lib/hibernate-validator-6.0.7.Final.jar
   782155  02-19-2018 10:08   application-distribution-0.0.1-SNAPSHOT/lib/spring-webmvc-5.0.4.RELEASE.jar
  1244848  02-19-2018 10:08   application-distribution-0.0.1-SNAPSHOT/lib/spring-web-5.0.4.RELEASE.jar
  1145432  03-01-2018 05:23   application-distribution-0.0.1-SNAPSHOT/lib/spring-boot-autoconfigure-2.0.0.RELEASE.jar
   922427  03-01-2018 05:23   application-distribution-0.0.1-SNAPSHOT/lib/spring-boot-2.0.0.RELEASE.jar
      613  03-01-2018 05:23   application-distribution-0.0.1-SNAPSHOT/lib/spring-boot-starter-logging-2.0.0.RELEASE.jar
    26586  03-01-2018 05:23   application-distribution-0.0.1-SNAPSHOT/lib/javax.annotation-api-1.3.2.jar
  1079064  02-19-2018 10:08   application-distribution-0.0.1-SNAPSHOT/lib/spring-context-5.0.4.RELEASE.jar
   360034  02-19-2018 10:08   application-distribution-0.0.1-SNAPSHOT/lib/spring-aop-5.0.4.RELEASE.jar
   654022  02-19-2018 10:08   application-distribution-0.0.1-SNAPSHOT/lib/spring-beans-5.0.4.RELEASE.jar
   263410  02-19-2018 10:08   application-distribution-0.0.1-SNAPSHOT/lib/spring-expression-5.0.4.RELEASE.jar
  1216414  02-19-2018 10:08   application-distribution-0.0.1-SNAPSHOT/lib/spring-core-5.0.4.RELEASE.jar
   297518  10-24-2017 03:28   application-distribution-0.0.1-SNAPSHOT/lib/snakeyaml-1.19.jar
    33391  01-30-2018 09:16   application-distribution-0.0.1-SNAPSHOT/lib/jackson-datatype-jdk8-2.9.4.jar
    98261  01-30-2018 09:16   application-distribution-0.0.1-SNAPSHOT/lib/jackson-datatype-jsr310-2.9.4.jar
     8643  01-30-2018 09:16   application-distribution-0.0.1-SNAPSHOT/lib/jackson-module-parameter-names-2.9.4.jar
  1345154  01-30-2018 09:16   application-distribution-0.0.1-SNAPSHOT/lib/jackson-databind-2.9.4.jar
   257309  02-14-2018 08:07   application-distribution-0.0.1-SNAPSHOT/lib/tomcat-embed-websocket-8.5.28.jar
  3109223  02-14-2018 08:07   application-distribution-0.0.1-SNAPSHOT/lib/tomcat-embed-core-8.5.28.jar
   240498  02-14-2018 08:07   application-distribution-0.0.1-SNAPSHOT/lib/tomcat-embed-el-8.5.28.jar
    93107  01-08-2018 11:43   application-distribution-0.0.1-SNAPSHOT/lib/validation-api-2.0.1.Final.jar
    66469  02-20-2018 12:53   application-distribution-0.0.1-SNAPSHOT/lib/jboss-logging-3.3.2.Final.jar
    65100  09-19-2017 07:31   application-distribution-0.0.1-SNAPSHOT/lib/classmate-1.3.4.jar
   290339  06-16-2017 04:40   application-distribution-0.0.1-SNAPSHOT/lib/logback-classic-1.2.3.jar
    17519  11-28-2017 08:42   application-distribution-0.0.1-SNAPSHOT/lib/log4j-to-slf4j-2.10.0.jar
     4596  03-27-2017 12:22   application-distribution-0.0.1-SNAPSHOT/lib/jul-to-slf4j-1.7.25.jar
    15836  02-19-2018 10:08   application-distribution-0.0.1-SNAPSHOT/lib/spring-jcl-5.0.4.RELEASE.jar
    66519  08-03-2017 05:28   application-distribution-0.0.1-SNAPSHOT/lib/jackson-annotations-2.9.0.jar
   320923  01-30-2018 09:16   application-distribution-0.0.1-SNAPSHOT/lib/jackson-core-2.9.4.jar
   471901  06-16-2017 04:40   application-distribution-0.0.1-SNAPSHOT/lib/logback-core-1.2.3.jar
    41203  03-27-2017 12:22   application-distribution-0.0.1-SNAPSHOT/lib/slf4j-api-1.7.25.jar
   255485  11-28-2017 08:42   application-distribution-0.0.1-SNAPSHOT/lib/log4j-api-2.10.0.jar
        0  03-19-2018 07:31   application-distribution-0.0.1-SNAPSHOT/bin/
     7002  03-19-2018 07:31   application-distribution-0.0.1-SNAPSHOT/bin/application-distribution
     4042  03-19-2018 07:31   application-distribution-0.0.1-SNAPSHOT/bin/application-distribution.bat
---------                     -------
 15926900                     42 files

关于spring-boot - 没有可执行jar的Spring Boot 2 Gradle插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49352837/

相关文章:

java - 在 Java Spring boot 中是否有一种方法可以对不同的 Java 对象使用单个 kafka 队列?

java - Spring Boot - 从 application.yml 注入(inject) map

maven - Maven插件,ant任务或gradle插件,用于检查是否已安装rpm

gradle - 无法在具有20个库的大型项目中加快编译时间

maven - 使用 Gradle Kotlin DSL 发布 Kotlin MPP 元数据

java - 如何从 url 下载 pdf 到内部存储并打开它 : Android studio using kotlin

java - 通过传递用户 ID 列表来更新多个用户

spring-boot - 将 Spring Boot 和 OAuth2 客户端从使用客户端凭证流程转换为授权代码授予流程

java - 如何使用gradle为servlet创建MANIFEST.MF文件?

android - 使用 Gradle 3.1.2 无法解决 Retrofit