IntelliJ IDEA 和 Gradle - 不能应用于“(groovy.lang.Closure)”

IntelliJ IDEA and Gradle - Cannot be applied to '(groovy.lang.Closure)'

我有一个 Gradle 文件,每当我在 IntelliJ IDEA 14.1.5 中加载打开它时,都会显示整个文件的 IDE 错误。即所有错误似乎都是:

java.lang.String 错误

groovy.lang.Closure 错误

我试过清除文件内容,只写第一行:

group 'com.me.blah'

但即使这样也会导致错误。

为了上下文的缘故 - 这是一个更大的 SpringBoot 项目中的一个单独模块。该模块是一组简单的静态文件(其中Gradle用于CSS编译、静态分析等),其余为Java个模块,不是 有 Gradle 个问题。

谁能想到为什么 IntelliJ 会费力地理解这个 Gradle 文件?

对于任何寻求类似修复的人来说,这归结为模块的类型。我的模块在我的 .iml 文件中定义为

type="WEB_MODULE"

我创建了一个新的 Gradle 模块并粘贴了相同的内容,删除了原来的模块,将新模块重命名为与旧模块同名,一切正常。当我比较结果时,唯一的变化是 .iml 文件现在说:

type="JAVA_MODULE"

看来,这就是答案。将您的模块从 "web" 更改为 "java"。

我经常注意到这一点。在创建新项目并使用 'Gradle' 模板时,IntelliJ 似乎完全弄错了。所以我采取的办法是在创建一个新项目后,删除 .idea 和 .iml 文件,然后直接从 Gradle 文件重新打开项目。 IntelliJ 似乎能更好地理解这种情况下发生的事情。

我在 IDEA bu​​g tracker(IDEA-142683) 中找到了这个建议:

Workaround:
One can add a comment such as
//noinspection GroovyAssignabilityCheck
to suppress the warning, but this should not be necessary as these are standard every day Gradle usages.

此问题最近已更新并标记为已修复,准备随版本 2016.2 一起发布。

最近发生在我身上 windows。我尝试了以上所有方法,但都没有用。

我做了什么:

1 - 我已经设置了 JAVA_HOME 环境变量。所以 IDEA 选择它作为项目 SDK,并且出现了这些警告。

2 - 因此,我从项目 SDK 中删除了默认的 JAVA_HOME 并手动添加了 jdk 路径。重新启动,所有警告都消失了。

也许它会对某人有所帮助。谢谢。

第一部分问题:group是一个属性,所以一定是赋值,不是函数调用。正确的代码是:

group = 'com.me.blah'

我发现这个警告来自 Groovy 检查 Intelliji。因此,如果您的项目不是纯粹的 groovy,您可以通过转到文件 -> 设置 -> 编辑器 -> 检查 -> 禁用 Groovy 来禁用此检查。同样,只是一种解决方法。

尝试文件 |使缓存无效并重新启动。在我弄乱文件中其他地方的句法后,它对我有用。

对我来说,在尝试了所有这些答案都没有结果之后,更改项目的 Java SDK 就成功了,我在 1.8 上并将其更改为最新的,但仍然是项目级语言共 8 个

希望对您有所帮助!