Intellij idea 使用Gradle时Intellij报告的不兼容类型
我启动了一个新的Java项目,它使用Gradle(版本3.4.1)和IntelliJ。我在命令行中使用了Intellij idea 使用Gradle时Intellij报告的不兼容类型,intellij-idea,gradle,groovy,Intellij Idea,Gradle,Groovy,我启动了一个新的Java项目,它使用Gradle(版本3.4.1)和IntelliJ。我在命令行中使用了gradleinit,然后使用默认的包装器(根据IDE,这是推荐的)将项目导入IntelliJ 我在build.gradle文件中有以下内容: jar { manifest { attributes 'Main-Class': "com.testerstories.textadv.Voxam" } } 但是,属性行提供了一致的警告,提示: 'attribute
gradleinit
,然后使用默认的包装器(根据IDE,这是推荐的)将项目导入IntelliJ
我在build.gradle
文件中有以下内容:
jar {
manifest {
attributes 'Main-Class': "com.testerstories.textadv.Voxam"
}
}
但是,属性
行提供了一致的警告,提示:
'attributes' cannot be applied to '(['Main-Class':groovy.lang.GString])'
问题似乎是“不兼容的类型”,但“应用于”什么“属性”尚不清楚。我假定清单
块。但是。。。它到底想让我做什么
我意识到这是一个警告,我可以忽略它。我也意识到我可以阻止检查。但是在所有关于这一点的讨论中,我意识到有一些(尽管大多数讨论似乎是关于“groovy.lang.Closure”),我还没有找到任何明确地简单说明实际问题是什么以及如何解决它的东西。我说“解决它”,而不是(1)掩盖它或(2)假装它不存在
我担心的是,一些看似非常基本的Gradle用法未被识别,或者表明支持Java的核心IDE之一存在问题
最后,我要注意,在添加StackOverflow空间之前,我已经询问JetBrains支持人员,他们的回答是确保我的.iml
文件指示的是“JAVA_模块”而不是“WEB_模块”,我确实验证了这一点。他们的下一个回答是,我需要提供(直接引用)一个“名称空间来解决歧义,它应该解决错误的类型错误。”具有讽刺意味的是,也许这个回答本身需要一些歧义解决方案,但我没有得到进一步的回答
更新(与上述内容相关;但上下文不同)
如果我在Gradle中使用类似的东西:
systemProperties(System.getProperties())
我听说getProperties()
是一个模棱两可的方法调用。起初我认为这与我最初的问题无关,但IntelliJ inspector报告说,这也是一个类型不兼容的问题
我得出的结论——也可能是“答案”——是Gradle和IntelliJ在各种情况下都不能友好相处。Gradle的版本是什么?这是Gradle 3.4.1的版本。我发现Gradle和IntelliJ只是彼此不喜欢。与上面的内容无关,但是如果使用这个
systemProperties(System.getProperties())
,我被告知getProperties()是一个“不明确的方法调用”。这在目前对我来说毫无意义。