web-dev-qa-db-ja.com

IntelliJ IDEAおよびGradle-'(groovy.lang.Closure)'に適用できません

私はIntelliJ IDEA 14.1.5でロードするたびにファイル全体のIDEエラーを表示するGradleファイルを持っています。つまり、すべてのエラーは次のいずれかです。

Java.lang.String errors

Java.lang.String errors

または

groovy.lang.Closure errors

groovy.lang.Closure errors

私はファイルの内容を消去して、一番上の行だけを書き込もうとしました:

group 'com.me.blah'

しかし、それでもエラーになります。

コンテキストのために-これは、より大きなSpringBootプロジェクトの個々のモジュールです。このモジュールは一連の単純な静的ファイル(CSSコンパイル、静的分析などのためのGradleを使用)であり、残りはJavaモジュールであり、not Gradleの問題がある。

IntelliJがこのGradleファイルを理解するのに苦労する理由を誰でも考えることができますか?

56
Seb Charrot

同様の修正を探している人のために、これはモジュールのタイプに要約されました。私のモジュールは、.imlファイルで次のように定義されました。

type="WEB_MODULE"

新しいGradleモジュールを作成し、同じコンテンツに貼り付け、元のモジュールを削除し、新しいモジュールの名前を古いモジュールと同じ名前に変更しましたが、すべて正常に機能しました。結果を比較すると、唯一の変更点は.imlファイルが次のようになったことです。

type="Java_MODULE"

一見、答えがあります。モジュールを「web」から「Java」に変更します。

5
Seb Charrot

私はこれにしばしば気づきました。新しいプロジェクトを作成し、「Gradle」テンプレートを使用すると、IntelliJはすべて間違っているようです。そこで私がやったことは、新しいプロジェクトを作成した後、.ideaファイルと.imlファイルを削除し、Gradleファイルから直接プロジェクトを再度開くことです。 IntelliJは、この場合に何が起こっているかをよりよく理解しているようです。

35
Jon Nichols

質問の最初の部分:groupはプロパティであるため、関数呼び出しではなく割り当てが必要です。適切なコードは次のとおりです。

group = 'com.me.blah'
18
Beholder

IDEAバグトラッカーでこの提案を見つけました( IDEA-14268 ):

回避策:
次のようなコメントを追加できます
//noinspection GroovyAssignabilityCheck
警告を抑制しますが、これらは毎日Gradleの使用法であるため、これは必要ではありません。

この問題は最近更新され、修正済みとマークされており、バージョン2016.2リリースでリリースする準備ができています。

14
FGreg

ファイルを試す|キャッシュを無効にして再起動します。ファイル内のどこかで構文を台無しにした後、私にとってはうまくいきました。

6

私にとって、これらの答えをすべて結果なしで試した後、プロジェクトのJava SDKを変更するとうまくいきました。1.8で、最新のものに変更しましたが、プロジェクトレベル言語は8です。

お役に立てれば!

3
Ariel Mirra

私が見つけたのは、この警告はインテリジのGroovy検査によるものだということです。したがって、プロジェクトが純粋なGroovyでない場合は、[ファイル]-> [設定]-> [エディター]-> [検査]-> [Groovyの無効化]に移動して、この検査を無効にできます。繰り返しますが、回避策です。

2
Neal Sha

最近Windowsで私に起こった。上記のすべてを試しましたが、うまくいきませんでした。

私がしたこと:

1-Java_HOME環境変数が既に設定されていました。したがって、IDEAはそれをプロジェクトSDKとして選択し、これらの警告が表示されました。

2-したがって、プロジェクトSDKからデフォルトのJava_HOMEを削除し、jdkパスを手動で追加しました。再起動し、すべての警告が消えました。

たぶんそれは誰かを助けるでしょう。ありがとう。

2
Rajkishan Swami