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

时间:2015-10-02 10:30:25

标签: java intellij-idea groovy gradle build.gradle

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

java.lang.String错误

java.lang.String errors

groovy.lang.Closure错误

groovy.lang.Closure errors

我已经尝试清除文件的内容,只写了第一行:

group 'com.me.blah'

但即使这会导致错误。

出于上下文的考虑,这是一个更大的SpringBoot项目中的单个模块。这个模块是一组简单的静态文件(使用Gradle进行CSS编译,静态分析等),其余的是Java模块,并且有Gradle问题。

有人能想到为什么IntelliJ会难以理解这个Gradle文件吗?

8 个答案:

答案 0 :(得分:33)

我经常注意到这一点。在创建新项目并使用“Gradle”模板时,IntelliJ似乎完全没错。所以我要做的就是在创建一个新项目之后,删除.idea和.iml文件并直接从Gradle文件重新打开项目。 IntelliJ似乎更好地理解了这种情况下发生了什么。

答案 1 :(得分:17)

对于问题的第一部分:group是属性,因此必须有赋值,而不是函数调用。正确的代码是:

group = 'com.me.blah'

答案 2 :(得分:12)

我在IDEA错误跟踪器(IDEA-142683)中找到了这个建议:

  

解决方法:
  可以添加诸如
的评论       //noinspection GroovyAssignabilityCheck
  抑制警告,但这不应该是必要的,因为这些是Gradle每天使用的标准。

此问题最近已更新,已标记为已修复,已准备好在2016.2版本发布时发布。

答案 3 :(得分:5)

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

type="WEB_MODULE"

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

type="JAVA_MODULE"

所以答案似乎就是这样。将模块从“web”更改为“java”。

答案 4 :(得分:5)

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

答案 5 :(得分:3)

对我来说,尝试所有这些答案都没有结果之后,更改项目的Java SDK可以解决问题,我使用的是1.8版本,并将其更改为最新版本,但仍然是8级项目级别的语言。

希望这会有所帮助!

答案 6 :(得分:2)

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

答案 7 :(得分:1)

最近在Windows上发生了我的事。我尝试了以上所有但是它没有用。

我做了什么:

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

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

也许它会帮助某人。感谢。