Spring boot can';t使用';springBoot&x27;kotlin构建脚本中的作用域
我有个问题 有一个关于spring boot gradle插件的问题。我写了一个允许指定版本的spring引导示例(例如Spring boot can';t使用';springBoot&x27;kotlin构建脚本中的作用域,spring-boot,gradle,gradle-plugin,gradle-kotlin-dsl,Spring Boot,Gradle,Gradle Plugin,Gradle Kotlin Dsl,我有个问题 有一个关于spring boot gradle插件的问题。我写了一个允许指定版本的spring引导示例(例如2.2.1.RELEASE) 顺便说一句,springBoot范围在应用传统插件应用程序风格编写的springBoot gradle插件时不可用。但插件DSL风格不是问题。 我知道Kotlin构建脚本中的插件范围中没有动态版本分配,所以我必须使用遗留插件应用程序风格来编写 代码如下: 使用旧插件应用程序: buildscript { repositories { g
2.2.1.RELEASE
)
顺便说一句,springBoot
范围在应用传统插件应用程序风格编写的springBoot gradle插件时不可用。但插件DSL风格不是问题。
我知道Kotlin构建脚本中的插件范围中没有动态版本分配,所以我必须使用遗留插件应用程序风格来编写
代码如下:
使用旧插件应用程序:
buildscript {
repositories {
gradlePluginPortal()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.2.1.RELEASE")
}
}
apply(plugin = "org.springframework.boot")
springBoot {
mainClassName = "blabla~~"
}
e:…/build.gradle.kts:25:1:未解析的引用:springBoot
使用插件DSL:
plugins {
id("org.springframework.boot") version "2.2.1.RELEASE"
}
springBoot {
mainClassName = "blabla~~"
}
没问题
谢谢!这是完全正常的,也是意料之中的。Kotlin DSL仅在使用插件块应用插件时才提供插件扩展。@jbnite感谢您的回复。顺便说一句,我不明白为什么它与我在
Groovy
中编写它时有所不同。如果我使用Groovy
,我可以使用springBoot
。这是spring boot gradle插件的问题吗?我在文件中没有看到这种表现。你能告诉我它写在哪里吗?你能给我一个解决方法吗?这是不同的,因为Groovy是一种动态语言,而Kotlin不是。因此,springBoot在Groovy中是可用的,因为它是作为Groovy中项目对象的扩展动态添加的,但只有在编译.kts文件时,才能将它作为Kotlin扩展函数添加,前提是使用plugins块静态应用插件。请参阅中的信息说明。@JBNizet感谢您的详细回复:)