使用Gradle时由Intellij报告的不兼容类型

时间:2017-04-08 19:34:49

标签: intellij-idea gradle groovy

我启动了一个使用Gradle(版本3.4.1)和IntelliJ的新Java项目。我在命令行使用gradle init,然后使用默认包装器将项目导入IntelliJ(建议根据IDE使用)。

我在build.gradle文件中有以下内容:

jar {
    manifest {
        attributes 'Main-Class': "com.testerstories.textadv.Voxam"
    }
}

然而,attributes行提供了一致的警告:

'attributes' cannot be applied to '(['Main-Class':groovy.lang.GString])'

问题似乎是"不兼容的类型。"但它不清楚什么是"属性"正在被应用于"。我会假设manifest块。但那么......它要我完全做什么?

我意识到这是一个警告,我可以忽略它。我也意识到我可以阻止检查。但是在所有关于这个的讨论中,我意识到有一些(尽管大多数人似乎都在处理&groovy.lang.Closure&#39;),我还没有找到任何明确的< / em>非常简单地说明实际问题是什么以及如何解决它。我说&#34;解决它&#34;与(1)只是掩盖它或(2)假装它不存在相反。

我担心看起来非常基本的Gradle使用情况无法识别,或者表明其中一个支持Java的核心IDE存在问题。

最后,我要注意,在添加到StackOverflow空间之前,我曾向JetBrains提出过支持,他们的回答是确保我的.iml文件指示&#34; JAVA_MODULE&#34;而不是&#34; WEB_MODULE&#34;,我确认了。他们的下一个答案是我需要提供(直接引用)一个&#34;命名空间来解决歧义,这应该解决错误的类型错误。&#34;具有讽刺意味的是,也许这个回复需要一些模糊的解决方案,但我没有得到进一步的回应。

更新(与上述相关;但有不同的背景)

如果我在Gradle中使用这样的东西:

systemProperties(System.getProperties())

我告诉getProperties()是一个模棱两可的方法调用。最初我认为这与我原来的问题无关,但是IntelliJ检查员报告说这是一个不兼容类型的问题。

我达成的结论 - 以及可能的回答&#34; - Gradle和IntelliJ是不是在各种环境中都不能很好地互相玩耍。

0 个答案:

没有答案