【问题标题】:How to configure spring-boot repackage with gradle-script-kotlin如何使用 gradle-script-kotlin 配置 spring-boot 重新打包
【发布时间】:2016-09-22 05:27:09
【问题描述】:

使用常规 gradle 我会像这样配置一个主类:

bootRepackage {
    mainClass = 'demo.Application'
}

使用 gradle-script-kotlin,这不起作用。
我想我需要以某种方式使用 Project.configure 内联函数,但我尝试了一些不同的方法,但都无法使其工作。

【问题讨论】:

  • 显示您的主要课程。你的班级可能是ApplicationKt。
  • 我有多个主类,这是我需要配置它的部分原因,如果你只有一个主类,无论如何它都会被发现。不,问题不在于类名,上面甚至不会编译,更不用说评估了。
  • 那么你得到了哪个错误?
  • 我已经尝试了大约 6 种不同的方式来配置插件,都产生了各种错误,我没有将它们包括在问题中,因为我想保持简洁并针对手头的问题。我不是试图解决错误,而是试图发现正确的方法。
  • 好的,那么请签出这个项目:github.com/IRus/kotlin-meetup

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


【解决方案1】:

更新 - 2017 年 9 月 8 日

在较新版本的 Kotlin 支持中,您还有其他几种更惯用的方法来完成此操作:

tasks {
  "bootRepackage"(Repackage::class) {
    mainClass = "demo.Application"
  }
}

还有:

val bootRepackage by tasks.getting(Repackage::class) {
  mainClass = "demo.Application"
}

我确信新版本的 Spring Boot 中该任务会有所改变。


bootRepackage 是org.springframework.boot.gradle.repackage.RepackageTask 类型的任务。使用0.4.1,没有可用的扩展方法使此配置显而易见。您必须执行以下操作:

import org.springframework.boot.gradle.repackage.RepackageTask

(tasks.getByName("bootRepackage") as RepackageTask).apply {
  mainClass = "demo.Application"
}

Task 配置的相关未解决问题:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 2017-05-31
    • 2017-10-11
    • 2018-10-19
    • 2018-09-11
    相关资源
    最近更新 更多