build.gradle.kts:10:28:未解决的参考:设置

build.gradle.kts:10:28: Unresolved reference: settings

我看过在 build.gradle.kts 脚本中使用 "by settings" 委托的示例,但无论我尝试做什么,Gradle 都会抱怨设置是一个未解析的引用。如果我将 'settings' 更改为 'project',Gradle 很高兴。是否已弃用 'by settings'?我查看了 Gradle 6.4.1 手册,它显示了这个委托。我附上了一张图片,显示了 Initializr 生成的一个简单的 Spring 启动应用程序,唯一的变化是添加了 gradle.properties 文件和 build.gradle.kts 文件中的委托。我真的很感激关于这个问题的任何提示......我知道我可以使用 'extra' 属性或找到 属性 针对项目对象,但坦率地说,这个问题让我很恼火我需要知道哪里出了问题! :P。感谢您的帮助...

project 委托在 class ProjectDelegate 中定义。您的构建脚本是针对扩展 ProjectKotlinBuildScript 实例进行评估的,因此委托可用。

但是,在评估 settings.gradle 时,项目尚未配置,因此没有 KotlinBuildScript 的实例。相反,该脚本是针对 KotlinSettingsScript 的实例进行评估的,该实例扩展了 Settings,它具有 settings 委托。我不认为这个委托可用于项目构建脚本。

在这两种情况下,委托都是由扩展函数提供的,因为 ProjectSettings 都是 Gradle 核心文件的 Java 部分 API.

希望这能回答您的问题。