プラットフォーム:IntelliJ Community Edition 10.0.3
SDK:jdk1.6.0_21
OS:Windows 7
それで、私はIntelliJに奇妙な状況があり、それが私を完全に困惑させています。 Mavenプロジェクトをセットアップし、pom.xmlファイル内の依存関係としてlog4jを追加します。 IDEA検査は問題なく実行され、私のユニットテストはすべてコンパイルされて実行されます。
それから私は以下のようにmvn install:install-fileを使ってhunnysoftのjmimeライブラリを私のローカルMavenリポジトリに追加しました。
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Mavenはjarファイルをローカルリポジトリにうまくインストールしました。
その後、IntelliJの[設定] - > [Maven] - > [リポジトリサービス]に移動し、ローカルリポジトリを更新しました(IntelliJがリポジトリの内容を再インデックスするため)。
最後に、私はpom.xmlファイルに次の依存関係を追加しました(log4j依存関係のすぐ上)。
<dependency>
<groupId>jmime</groupId>
<artifactId>jmime</artifactId>
<version>3.1.1e</version>
</dependency>
次のようにして新しいクラスを作成します。
package com.stackoverflow.question;
import org.Apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;
public class StackOverflowQuestion {
public Field create(String name, String text) {
Logger.getLogger(getClass()).debug("create entered");
FieldBody body = new FieldBody();
body.setText(new ByteString(text));
Field field = new Field();
field.setFieldName(name);
field.setFieldBody(body);
return field;
}
}
今奇妙なことのために。 IntelliJの意図メカニズムは、Maven pomファイル内のLoggerインポートをうまく認識します。しかし、hunnysoftのすべてのインポートで、「シンボル 'ByteString/Field/FieldBody'を解決できません」、 _ but _ Build => Compile 'StackOverflowQuestion.Java'の順にレポートされます。このクラスは問題なく動作します(ただし、意図的にcreate()への呼び出しを問題領域としてマークしています)。
だからどこかで、どういうわけかIntelliJは意図サブシステムのためにjmime.jarファイルを無視しています。 log4jの依存関係は問題なく動作し、すべてがコンパイルされ、問題なく動作するため、混乱しています。 F12( "Go To Declaration")はロガーのインポートでは機能しますが、jmimeのインポートではすべて無効になります。
もう1つ、「プロジェクト」ウィンドウの「パッケージ」ビューに移動すると、「com.hunnysoft.jmime」パッケージが表示され、上記のコードスニペットの「ライブラリ」の下にインポートしたすべてのクラスが表示されます。 。 pom.xmlファイルから上記の依存関係を削除すると、このパッケージは消え、コンパイルは中断されます。
検査のクラスパスが壊れているように見えますが、Settings => Intentions |の中のどこにもこのための設定はありません。コンパイラ領域(このような設定を想定していなかったので、IDEAはpomファイルとJDKに基づく正しいクラスパスをすでに知っているはずです)。
最後の実験として、(mavenを使用せずに)まったく新しい標準のJ2SEアプリケーションプロジェクトを作成し、そのライブラリの1つとしてjmime.jarファイルをプロジェクトに直接追加しました。この新しいプロジェクトでは、上で説明したのとまったく同じ問題に遭遇します。
これはjmime jarファイルからのMANIFEST.MFです。
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.4
Created-By: 10.0-b23 (Sun Microsystems Inc.)
Name: com/hunnysoft/jmime/
Sealed: true
Specification-Title: Hunny JMIME
Specification-Version: 3.1.1
Specification-Vendor: Hunny Software, Inc.
Implementation-Title: com.hunnysoft.jmime
Implementation-Version: 3.1.1E
Implementation-Vendor: Hunny Software, Inc.
このjarファイルに異常なことは何もありません。
私の考えでは、おそらく問題は依存関係の欠如の問題かもしれないということです。しかし、AFAIK jmimeは自己完結型であることが想定されています(JarAnalyzerは何も思い付かないが、依存関係のjarファイルがない場合はそうではないと思います)。
だから、誰もが任意のIDEAを持っている?
まず最初にFile | Invalidate Caches
を試してみてください。それでも解決しない場合は IDEA system directory を削除してください。その後、Mavenプロジェクトを再インポートして、それが役立つかどうかを確認してください。
奇妙な場合には、コンパイルされたクラスは間違った情報を報告し、IDEAを混乱させるかもしれません。このjarのクラスが javap を使用して正しい名前を報告することを確認してください。
次のトリックは私のためにこの問題を解決しました:
私のアイデアのバージョンは12.0.4です
Gradleユーザーの場合:
プロジェクトをbuild.gradle
ファイルと同期させる必要があるかもしれません。
プロジェクトペインの下にあるGradleファイルを右クリックすると、これを行うことができます。 しかし これは私には何もしていないようです(私のバージョンではバグが疑われます)。あなたが待っているであろうIntelliJのタスクを開始しないのでこれが起こるかどうかを知っているでしょう。代わりに、Gradleツールペインを開いてから、同期(更新)ボタンをクリックしてください。キャッシュを無効にして再起動してもうまくいかない場合、これは私にとって役に立ちました。
私自身の状況:私はGradleと一緒にScalaプロジェクトを使用していました、そしてこれをしなければなりませんでした。
上記の解決策のどれも私のために働きませんでした。 main.imlファイルを手動で削除するだけで、突然うまくいきました。
ファイル - >キャッシュの無効化を実行してIDEを再起動したときのもう1つのステップは、プロジェクトを開くことです。自動インポートを有効にするかどうかを尋ねるトーストボックスが右上に表示され、問題は解決しました。
これは、この同じ質問に対する別の回答でも述べられています ここ 、しかしこれだけで私のためにこれを直すことができます。私はすべてのビルドをIntelliJの外部の別の端末で行います。そのため、キャッシュにはIntelliJアプリがそれらを読み取るための適切な権限を設定する必要があります。
プロジェクトのルートフォルダから実行してください。
$ mvn -U idea:idea
確認すべきもう1つのこと:依存関係が重複していないことを確認してください。私の場合、この振る舞いを示すモジュールは次のように誤って設定されていることがわかりました。それは他のモジュールへの依存関係を持ち、その他のモジュールによって生成されたjarへの依存関係を持ちます。これは重複して参照されるすべてのシンボルを意味し、あいまいでした。
プロジェクト構造の矛盾した/重複したモジュール名は私にとってこの問題を引き起こしていました。
File -> Project Strucutre -> Modules
に行くIntelliJが正しくシャットダウンされず、名前が変更されたモジュール名を正しく保存できない場合に起こります。
修正版は公開されましたか? 2013年の「コンパイラのオーバーホール」により、v11/12に最初から影響を及ぼした問題が表示されます。2014年末までのJiraでの関連問題についての議論とともに。 http://youtrack.jetbrains.com/issue/IDEA-98425
Jiraでは IDEA-98425 は固定とマークされていましたが、未検証(v12.0.3以降)。次のどれも 回避策 この問題を解決するのに役立ちませんでした "シンボルを解決できません" バージョンの問題 13.1.1 Windowsの場合
a。削除 .IdealIC13 folder(その後、File\Invalidate Caches/Restart)
b。 From Mavenプロジェクト window、
b.1 mvn -U idea:idea - > mavenの目標を実行すると、依存関係を再ロードすることになります。これは前の作業ですが、最後のFRI以来、プロジェクトを再コンパイルしようとしたときにこの目標の実行が失敗しました(もちろん "Unable to resolve Symbols"として失敗します。最初にこのコマンドを実行して修正します) mvn -version - 3.2.5を参照しているMavenのバージョンとそれが動作していることを示す
b.2プロジェクトを右クリックし、 再インポート
b.3ファイル\ キャッシュの無効化/再起動
c。 [ファイル] - > [設定] - > [Maven] - > [インポート] - > [プロジェクトをインポートするためにmaven3を使用する]の両方を有効または無効にします。
d。 Settings\Maven\Multiprojectビルド失敗ポリシー=最後に失敗(デフォルトの代わりに)
何も動作しません。 Mavenに対するIntelliJのサポートに何が起きていますか。
https://youtrack.jetbrains.com/issue/IDEA-99302
JetBeansのリリース履歴から、 https://www.jetbrains.com/company/history.jsp
IntelliJ v14 NOV 2014
IntelliJ v13 DEC 2013
私はv12が修正されたと仮定します(ただし、 未検証 )が、今後のリリースに組み込まれる予定です。どのIntelliJバージョンで同様の問題を抱えている人はいますか?あなたの経験を共有してください。 IntelliJ Mavenのサポートが壊れているようです。
私のプロジェクト構造:
src -> main -> scala -> mypackages
うまくいったこと:
scala
フォルダを右クリックし、「ディレクトリをソースルートとしてマーク」をクリックします。
他の答えはどれも私のために働きませんでした。 IntelliJが間違った.m2ファイルを指していたため、私のインポートは解決されませんでした。
IntelliJのバージョン: IntelliJ Idea 2018.1.5
.m2 ディレクトリの場所が間違ったパスを指していました。それを直すために私がしたのはIntelliJを正しい.m2ディレクトリに向け直してそれを更新することだけだった。
まず、に移動します。 ファイル - >設定 - >ビルド、実行、配置 - >ビルドツール - > Maven
ユーザー設定ファイル: と ローカルリポジトリ: を私の.m2ディレクトリの正しい場所に変更する必要がありました。
この後に行きます: ファイル - >設定 - >ビルド、実行、デプロイ - >ビルドツール - > Maven - >リポジトリ
そして更新ボタンをクリックします。
私はちょうどこの問題を抱えていました、そしてそれはただ消えません。私は結局、~
内のIntelliJ configディレクトリを一掃し、私のIntelliJプロジェクトを最初から再構築しました。 (キャッシュされたファイルなどの問題を解決するために1時間を費やすのに比べて、これは最後に約15分しかかかりませんでした)。
私の推測では、最初の問題はjavathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html
(NB:2018年現在、リンクは切れていますが、archive.orgには ページのコピーがあります この回答が最初に書かれた頃から)のようなものが原因です。 )またはJavaがクラッシュする原因となるディスク容量/メモリの問題。 IntelliJは壊れたようです。
時々、私はただプロジェクト構造を開いて、プロジェクトをクリックしてくださいそしてそれから SDKバージョンを選んでください 。
他の選択肢として。
JDK7_07を使用したときにもこの問題が発生しました。私はすべての答えをここで試しました(IDEAシステムディレクトリを削除することを除いて)。しかし、私はまだ問題を抱えています。だから私はそれをやったのです:
最新のJDK(JDK7_45)をインストールして、IntellijのJDKを新しいものに設定すればうまくいきます。
プロジェクトを再インポートしてもうまくいきました。 「プロジェクト」 - >「Maven」 - >「再インポート」を右クリックします。
「ファイル」 - >「キャッシュの無効化」を実行してIDEを再起動したときに、プロジェクトを開きます。右上の「Mavenの変更が検出されました」というダイアログが表示され、インポートして自動インポートを有効にするオプションがありました。ここにプロジェクトをインポートした後でも、私は同じ問題を抱えていました。上記のステップは問題を解決しました。
私の場合、私はIntellijIdeaからSpring Bootプロジェクトを開こうとしているのですが、Spring関連のファイルをすべてインポートできないのと同じ問題を抱えています。
それから私はしました:
[ファイル] - > [プロジェクトを閉じる] - > [プロジェクトのインポート] - > [外部モデルからのインポート] - > [Gradleの選択] - > [次へ] - >ファイルの場所からプロジェクトを選択 - > [完了]
今、すべてが期待通りにうまく機能しています。
私はここで多くの答えを見ました、しかし私はついにこの解決策を見つけました。それは私のような人に使うかもしれません。
キャッシュを無効にして再起動した後。そして私のMaven設定が大丈夫であることを確認して、私はまだ私が依存関係として設定したモジュールのための「シンボルを解決できない」を見ていました。私はそれが間違った範囲に設定されていたことがわかりました。
モジュールを右クリックしてOpen Module Settingsを選択すると確認できます。依存関係タブをクリックし、解決できない依存関係の範囲が[コンパイル]に設定されていることを確認します。
私の場合は、buildDirだけが削除されます。この場合、File | Invalidate Caches
は機能しません。
Build | Make Project
の前にFile | Invalidate Caches
を実行すると、すべてうまくいきます。
上記の解決策のどれも私のためにそれを解決しませんでした。私はコードがうまくコンパイルされたがIntelliJがそれがインポートを見つけることができなかったことを示した同じ問題を抱えていた。 IntelliJがコードの完成から最初の場所でインポートを提案したとしても。
私の解決策は、すべてをデフォルトのパッケージに移動し、com.foo.bar
パッケージを削除してから再度作成して、すべてを元に戻すことでした。
時々、あなたはcom.mydomain.somethingのようなパッケージを作成するとき、ディレクトリ構造 は作成されない そしてあなたは 単一のフォルダを残される この場合名前は "com.mydomain.something"とするのような構造
com
|_mydomain
|_something
Java内にある:imlファイルを削除し、プロジェクト内のフォルダーをテストして、無効にして再起動します。
プロジェクトを削除してもいいですか。はい入れます。エラーが発生します。
提案された解決策はうまくいきませんでした。 pom => maven => unignoreプロジェクトを右クリックして、 unignore いくつかのプロジェクトを実行しなければなりませんでした。
その後、
mvn clean install -T 6 -DskipTests
コンソールで、IntelliJはまた幸せでした。プロジェクトがどのように無視されるようになったのかわかりません...
Intellij Ideaユーザーにとっては、プロジェクトをインポートする前にこのコマンドを使用すると便利です。
./gradlew build ./gradlewのアイデア
Gradleプロジェクトの場合:
<problematic-project-root>/.idea
ディレクトリを削除します<problematic-project-root>/.gradle
ディレクトリを削除します.iml
内の<problematic-project-root>
ファイルをすべて削除します。DEL /S /Q *.iml
find . | grep -e .iml$ | xargs rm
はい、必要なJARを含むライブラリを作成し、それらをモジュールの依存関係として追加する必要があるようです。
無効キャッシュは私のために働いたが、アプリケーションを実行した後に同じエラーがありました。
だから私は試してみました( Intellij ):
1 - メニューバー - リファクタリング| ビルド |実行|ツール - クリック ビルド それから プロジェクトの再ビルド
2 - MVNクリーン
3 - プロジェクトを右クリック> Maven>ソースの生成とフォルダの更新
これがあなたのために働くことを願っています。
ありがとう
mvn idea:idea
は私のために働きました。それが見つかりました ここ 。 1時間以上費やした、誰かに役立つことを願って
私にとってうまくいったのは、赤いマークのついたクラスがあったディレクトリを「ディレクトリソースルートとしてマークする」ことです。何らかの理由でそれがマークされていなかったようです。
Idea 2017.1 + Gradleでは、このプラグインはどういうわけかバグがあります。すべて同期しようとしました、無効化+再起動、何も動作しませんでした。 https://github.com/gradle/gradle/issues/2315 によると、これは私のために働いた:1。アイデアを閉じます2。コマンドラインでgradleアイデアを入力します(3ファイルを生成する必要があります。 、.iws)3.アイデアを実行し、作成したファイル.iprを開きます。これにより、プロジェクトが最初からインポートされ、これら3つのファイルには依存関係が固定されています。
私の場合、この問題は、私のMavenプロジェクトでファイルの大きな再構成をチェックアウトした後に発生しました。チェックアウト時に、私は自分自身の中に未チェックの変更をまだアクティブにしていました。私が言うことができる限り、変更は再構成されているファイルのどれにもありませんでした。
キャッシュを無効にして再起動してもうまくいきませんでした。仕事は何でした:
mavenプロジェクトの場合は、設定 - >ビルドツール - > Maven - >インポートに進みます。 「Mavenプロジェクトを自動的にインポートする」チェックボックスをチェックします。問題を解決します。
何も解決しない場合は、ソースディレクトリを右クリックし、ディレクトリを "Source Directory"としてマークしてからプロジェクトディレクトリを右クリックしてmaven - > re-importを選択します。
これで私の問題は解決しました。
MAVENの場合、
上記の方法をすべて試しましたが、解決策が見つかりませんでした。
以下は私が試した手順です(いくつかの解決策の組み合わせ)。
mvn clean
mvn idea:clean
(project/subprojectsの.imlファイル以外の余分な.imlファイルがないことを確認してください)
すべてのpom.xmlファイルが正しく設定されていてもIntelliJのMavenに問題がある場合は、次の手順を実行します
P.S私は、Mavenインデックスの更新を処理するIntelliJのJavaデーモンプロセスが何か問題を起こしていることを理解するために何時間もかけていました(ステップ3)。 IntelliJ自体を再起動しなくても問題は解決しました。
「ファイル - >キャッシュの無効化と再起動」を選択すると、すべての依存関係が解決されます。
Invalidate Caches/Restart ...の一番の提案は私にはうまくいきませんでしたし、他の解決策のどれもしませんでした。それは私のmavenリポジトリが間違って設定されていたことになりました、私は手動でsettings.xmlとリポジトリディレクトリを上書きすることでこれを修正しました:
ファイル - > 設定 ... - > ビルド、実行、配置 - > ビルドツール - > Maven
次に、 ユーザー設定ファイル および ローカルリポジトリ について、 Override を確認し、正しいsettings.xmlとリポジトリディレクトリを指定します。
新しいコンピュータに切り替えたときにも、同様の問題がありました。
すべてのIDEAファイル(関連する%APPDATA%フォルダーも含む)をコピーしましたが、Mavenのビルドは成功しましたが、IDEAはビルド時に依存関係からクラスを見つけられませんでしたそれ。
解決策:私は新しくてきれいなIDEAプロファイルから始め、%APPDATA%フォルダからフォルダを削除しました。
[ファイル] - > [プロジェクト構造] - > [SDK]に移動して、SDKファイルのパスが正しいかどうかを確認します。
この問題を解決した理由
私は別のブランチを持ち、そのブランチに切り替えてmvn clean installでプロジェクトをビルドしました。すべて問題なかったので、マスターに戻ってプロジェクトをもう一度ビルドするとエラーは消えました。キャッシュを無効にして再起動しても役に立ちませんでした。
Intellijプロパティを変更すると、インポートしたファイルが大きすぎる可能性があります。 25000、そしてIDEを再起動し、問題は消えた。お役に立てれば。
Java.beansなどの標準Javaライブラリのインポートに問題がありました。*
私のRedhat 7システムで正しいJREパスを指すように修正しました。
「ファイル」 - >「プロジェクト構造」 - >「SDK」 - > 1.8「JDKホームパス」を/ usr/libではなく/usr/lib/jvm/Java-1.8.0-openjdk-1.8.0161-2.b14.el7.x86_64に変更しました。 /jvm/Java-1.8.0-openjdk-1.8.0161-2.b14.el7_4.x86_64
Jdkへの以前のパス(パスに_4の違いがあります)には、ほとんど何もありませんでした。多くのJavaライブラリが欠けていました。
これは、依存関係のjarファイルがFat Jarでもある場合によく起こります。幸い、私はFat Jarを非Fat Jarにした後、Fat Jarの構築をコントロールできました。ここでの答えやコメントに対するその他の修正はどれも私にとってはうまくいきませんでした。また、おそらく注目に値するのは、私のコードがKotlinにあり、Fat JarがKotlinの依存関係もバンドルしていたことです。