Gradle 无法分配';字符串';至';T';
我正在尝试创建一个Gradle插件,当我定义插件的Gradle 无法分配';字符串';至';T';,gradle,intellij-idea,gradle-plugin,Gradle,Intellij Idea,Gradle Plugin,我正在尝试创建一个Gradle插件,当我定义插件的id和implementationClass时,IntelliJ说无法将“字符串”分配给“T” 为什么会显示警告 我怎样才能解决这个问题 我正在使用 IntelliJ IDEA 2020.1.1 (Ultimate Edition) Build #IU-201.7223.91, built on April 30, 2020 IntelliJ无法推断类型,尤其是在。这是对Gradle文件使用Groovy语法的一个缺点。您将在某些地方看到I
id
和implementationClass
时,IntelliJ说无法将“字符串”分配给“T”
- 为什么会显示警告
- 我怎样才能解决这个问题
IntelliJ IDEA 2020.1.1 (Ultimate Edition)
Build #IU-201.7223.91, built on April 30, 2020
IntelliJ无法推断类型,尤其是在。这是对Gradle文件使用Groovy语法的一个缺点。您将在某些地方看到IntelliJ能够正确推断类型,但在其他地方则不能 这才是真正闪耀的地方。如果您切换到Kotlin DSL,您几乎可以在任何地方获得代码完成和提示 以Kotlin为例,我得出以下结论: 您可以看到,由于Kotlin是一种与Groovy不同的静态类型语言,我获得了完整的代码完成 如果您确实希望Groovy提供完整的代码完成和提示,那么我建议您避免使用Groovy DSL,直接使用Gradle API: 上述Groovy的简化版本:
project.extensions.configure(GradlePluginDevelopmentExtension, { GradlePluginDevelopmentExtension gradlePluginExtension ->
gradlePluginExtension.plugins({ NamedDomainObjectContainer<PluginDeclaration> pluginDeclarations ->
pluginDeclarations.create("ll.greating", { PluginDeclaration pluginDeclaration ->
pluginDeclaration.setId("ll.greeting")
})
})
})
project.extensions.configure(GradlePluginDevelopmentExtension,{GradlePluginDevelopmentExtension gradlePluginExtension->
插件({NamedDomainObjectContainer插件声明->
创建(“ll.greating”,{PluginDeclaration PluginDeclaration->
pluginDeclaration.setId(“ll.greeting”)
})
})
})
是的,我在其他项目中使用过Kotlin DSL。我想知道是否有可能通过Groovy本身解决这个问题。顺便说一下,谢谢您的回复。:)我已经更新了我的答案,添加了一个Groovy代码段,它的类型很难修复一个简单的警告。我已经联系了技术支持,他们确认这是IDE中的一个bug。