[英]'sourceSets' cannot be applied to groovy.lang.Closure<org.gradle.api.tasks.SourceSet> warning in IntelliJ 2016
[英]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 項目中的一個單獨模塊。 這個模塊是一組簡單的靜態文件(帶有用於 CSS 編譯、靜態分析等的 Gradle),而其余的是 Java 模塊,並且沒有Gradle 問題。
誰能想到為什么 IntelliJ 會努力理解這個 Gradle 文件?
我經常注意到這一點。 創建新項目並使用“Gradle”模板時,IntelliJ 似乎完全搞錯了。 所以我采取的做法是在創建一個新項目后,刪除 .idea 和 .iml 文件,然后直接從 Gradle 文件重新打開該項目。 IntelliJ 似乎更好地理解在這種情況下發生了什么。
對於問題的第一部分: group
是一個屬性,因此必須有賦值,而不是函數調用。 正確的代碼是:
group = 'com.me.blah'
我在 IDEA 錯誤跟蹤器 ( IDEA-142683 ) 中找到了這個建議:
解決方法:
可以添加評論,例如//noinspection GroovyAssignabilityCheck
抑制警告,但這應該不是必需的,因為這些是 Gradle 每天的標准用法。
此問題最近已更新,並標記為已修復,准備與 2016.2 版一起發布。
嘗試文件 | 使緩存無效並重新啟動。 在我弄亂文件中其他地方的語法之后,它對我有用。
對於任何尋求類似修復的人來說,這歸結為模塊的類型。 我的模塊在我的 .iml 文件中定義為
type="WEB_MODULE"
我創建了一個新的 Gradle 模塊並粘貼了相同的內容,刪除了原來的模塊,將新模塊重命名為與舊模塊同名,一切正常。 當我比較結果時,唯一的變化是 .iml 文件現在說:
type="JAVA_MODULE"
答案似乎是這樣的。 將您的模塊從“web”更改為“java”。
我發現這個警告來自於對 Intelliji 的 Groovy 檢查。 因此,如果您的項目不是純 groovy,您可以通過轉到文件 -> 設置 -> 編輯器 -> 檢查 -> 禁用 Groovy 來禁用此檢查。 同樣,這只是一種解決方法。
對我來說,在嘗試了所有這些答案而沒有結果后,更改項目的 Java SDK 成功了,我在 1.8 上並將其更改為最新版本,但仍然是 8 的項目級語言。
希望這可以幫助!
最近在windows上發生在我身上。 我嘗試了上述所有方法,但沒有奏效。
我做了什么:
1 - 我已經設置了 JAVA_HOME 環境變量。 所以 IDEA 選擇了它作為項目 SDK 並且出現了這些警告。
2 - 所以,我從項目 SDK 中刪除了默認的 JAVA_HOME 並手動添加了 jdk 路徑。 重新啟動,所有警告都消失了。
也許它會幫助某人。 謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.