【问题标题】:Disable "-boot" distribution禁用“-boot”分发
【发布时间】:2018-04-20 01:01:55
【问题描述】:

我配置了一个带有多个 spring-boot 子项目的 gradle 项目,它似乎构建得很好,但由于某种原因,“distributions”目录中有 2 个存档,一个带有“-boot”后缀,另一个没有。带后缀的只包含当前项目的jar,没有任何依赖关系,不带后缀的包含启动应用程序所需的一切。我很确定上次我尝试构建 spring-boot 项目时没有生成这个其他存档,我不确定发生了什么变化。如何停止生成这些对我无用的档案?

父项目build.gradle:

allprojects {
    group '...'

    apply plugin: 'java'
}

subprojects {
    sourceCompatibility = 1.9
    targetCompatibility = 1.9

    repositories {
        ...
    }
}

spring-boot 子项目 build.gradle:

apply plugin: 'application'
apply plugin: 'org.springframework.boot'

mainClassName = '...'

dependencies {
    ...
}

buildscript {
    ext {
        springBootVersion = '2.0.0.M5'
    }
    repositories {
        ...
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

【问题讨论】:

    标签: java spring spring-boot gradle


    【解决方案1】:

    boot 分发包会打包应用程序的 fat jar 或 war 文件。换句话说,它的所有依赖项都打包在 jar 或 war 中,而不是单独的 lib 目录中。

    如果您不希望生成来自 boot 分发的档案,您可以禁用创建它们的任务:

    bootDistZip.enabled = false
    bootDistTar.enabled = false
    

    【讨论】:

    • 哦。我以前没有检查过 jar,但我现在做了,你是对的,依赖项包含在其中。没有boot 的存档实际上包含两次依赖项,一次在项目jar 文件中,一次在lib 目录中。这不可能是预期的行为?你能看出我上面发布的设置有什么问题吗?
    • 您能否展示一下如何使用 Kotlin 实现这一目标?
    • @MichielHaisma stackoverflow.com/a/52838334/1384297 希望能告诉你该怎么做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    相关资源
    最近更新 更多