MavenリポジトリにローカルjarへのMaven依存関係を持つJDK 1.7プロジェクトがあります。
Intellijを使用してプロジェクトをビルドできません。シンボルが見つからないというエラーが発生します(シンボルはローカルjarからパッケージをインポートするクラスです)
しかし、「mvn package」を使用してプロジェクトを正常にビルドできます。
私はすでに多くの時間を費やしてソリューションを探してきました。
このエラーは数回前に発生しましたが、通常はIntellijを閉じたり、「mvn clean install」を行ったりするだけでうまくいきました。
助けてください。
.imlファイルとpomが競合しており、問題の原因であることがわかりました。
私はこれが遅いことを知っていますが、mvn idea:idea
は問題を解決します。
すべての.imlとPOMを削除してください。次に、POMをコピーしてプロジェクトに再度貼り付け、再度開いてインポートし直します。
他の誰かを助けるかもしれない場合に備えて、これが同様の問題(IntelliJではなくmvnのプロジェクトビルド)を抱えていたときに検索で最初に出てきたので、いくつかのヒントを追加します。
私がこれを持っていたとき、それはWindowsとMacで異なる修正でした。
Macでは、ItellijIDEA/Preferences/Build、Execution、Deployment/Build Tools/Maven/Maven Home Directoryに移動し、バンドルされたMavenではなく、個別にインストールされたMavenを使用するように設定しました。ビルドの問題はすべてなくなりました。
Windowsでは、SSLに関連するidea.logで例外が表示され、プロジェクトツリーにはJavaしかありませんでした。他のサイトを見ると、IntelliJは独自のprivateシステム1の代わりにJDK(私の場合は、まったく同じJDKバージョンが既にインストールされていますが)システムJDKには、IntelliJプライベートJDKにはない企業Nexusサーバーのキーストアに証明書がインストールされています。 Nexusからファイルを取得しようとしたときにスローされました。このための解決策は、IntelliJを終了し、IDEA_JDKと呼ばれる環境変数を設定して、適切な証明書を持つインストール済みのJDKを指すようにし、IntelliJを再起動しました。 。
私はこの会話にかなり遅れていることを知っていますが、誰かがこの問題に遭遇した場合に備えて、これを投稿したかっただけです。これが発生するもう1つの理由は、正しいリポジトリを参照していないためです。 Intellijは、独自のMavenリポジトリからではなく、デフォルトでjarのバンドルバージョンを選択します。接続されたリポジトリが正しいリポジトリであることを確認します。
IDEは、ビルド時にMavenの独自のバンドルコピーを使用します。ターミナル上のMavenがIDEと異なる場合、それらを同じにする必要があります。
GOTO(Macの場合)-IntelliJ Idea-> Preferences-> Build、Execution、Deployment-> Build Tools-> Maven Mavenホームディレクトリのパスを設定しますターミナルから使用するMavenのパスを見つけるには、コマンドmvn -version
そしてそれは、dirパスを含む詳細の束を出力するはずです。それをMavenホームディレクトリに入れます。
安全のために、JDKの場所についても同じことができます。
====そのような問題を引き起こす可能性のあるその他の事柄===
Mvnパッケージまたはmvnクリーンインストールビルドを実行する場合、IDEキャッシュを使用して何かを行う必要があります。これは通常、このようなエラーの助けになります->
ファイル->キャッシュの無効化
私の場合、私のIMLは同期していないので、特定のモジュールのIMLを削除し、Mavenオプションの下でunignoreプロジェクトを選択してIMLを再作成します
「シンボルが見つかりません」は、intellijが「依存関係」を解決できないことを意味します。そのため、[分析]-> [依存関係の分析]をクリックして[分析範囲]を選択すると、[依存関係分析]を強制できます。
コマンドプロンプトからコマンドを実行します:mvn idea:idea
およびプロジェクトを右クリック->メニューから依存関係を再インポート
プロジェクトを閉じ、ルートpom(フォルダーだけでなく、pomファイル自体)をクリックして再度インポートしました。
同じ問題がありました。に行きます:
ファイル->プロジェクト構造->モジュール。モジュールを選択し、「Dependencies」タブで、すべてのMaven依存関係が追加されていることを確認します。
アイデアエディタで同様の問題について警告されていることを確認するには、[依存関係]タブから[ソース]に切り替えて、srcをソースとしてマークします。
言及されていない可能性もあります。 com.Sun.*
からライブラリをインポートする場合。また、この問題が発生します。
プログラムはideで実行すると機能します。これらのクラスはcom.Sun.*
にあり、すべてjre/lib
ディレクトリにあり、実行時にロードされます。ただし、mvn package
を実行すると、Java 1.6(これらのライブラリはある意味で廃止されました)。あなたは付け加えられます
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>C:/Program Files/Java/jdk1.8.0_161/jre/lib/rt.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
cootclasspathをrt.jar
の独自のパスに置き換えることを忘れないでください
Access restriction: The type XXX is not accessible due to restriction on required library
で詳細を検索できます。
キャッシュを無効にして、Mavenをインストール済みバージョンに変更しようとしましたが、何も機能しませんでした。
新しいプロジェクトを閉じて再作成すると解決しました。
同じ問題がありました。 Ideaの設定でMavenバージョンを3.0.5から3.0.4に変更しましたが、すべて正常に動作します。なぜそれが私を助けるのか分からない。
この簡単な手順は、リスクなしで約1分かかります。
上記のすべてを喜びなく試してみました。しかし、私は最終的にそれを機能させるために1つのことをしました:
C:\ Users\.IntellijJIdea2018.2に移動し、フォルダー全体を削除しました。
IntelliJのすべての設定とキャッシュが削除されます。プロジェクトをゼロから再インポートする必要がありましたが、以前は単純な削除と再インポートは機能していませんでしたが、これでようやく正常に機能するようになりました。
.ideaフォルダーを削除してIDEを閉じます
IDEを再び開き、.IDEAフォルダーが以前に削除されたため、新規インポートを行うプロジェクトをインポートします
外部ライブラリモジュールを確認し、必要な依存関係が入力されていない場合は、IDEでmaven settings.xmlの場所が正しく指定されているかどうかを確認します
Gradleを使用している場合は、以下のコマンドを試してください。これで問題が解決しました
gradle cleanIdea idea