Mavenパッケージは機能しますが、Intellijのビルドが失敗します


91

MavenリポジトリにローカルjarへのMaven依存関係を持つJDK1.7プロジェクトがあります。

Intellijを使用してプロジェクトをビルドできません。シンボルが見つからないというエラーがあります(シンボルはローカルjarからパッケージをインポートするクラスです)

しかし、「mvnpackage」を使用してプロジェクトを正常にビルドできます。

私は解決策を探すのにとても多くの時間を費やしました、私がすでにしたこと:

  • 無効なキャッシュ
  • 'mvn clean install'ローカルjar依存
  • IntellijのMaven構成で「スナップショットの自動ロード」にマークされています
  • Intellijで再実装されたMaven
  • Syncornized

このエラーは以前に数回発生しましたが、通常はIntellijを閉じるか、「mvncleaninstall」を実行するだけでうまくいきました。

助けてください。


1
MavenリポジトリはIntelliJで正しく構成されていますか?
Ruchira Gayan Ranaweera 2013

はい、そうです。リポジトリのパスは、「mvninstall」を使用すると更新されるパスです
Yarin Miran 2013

3
ローカルjarは、jarのスナップショットまたはリリースバージョンですか?jarがスナップショットの場合は、「常にスナップショットを更新する」をintellij Maven設定にチェックインして、IDEの更新を強制する必要があります。
F. Geraerts 2013

はい、それはスナップショットです、私はすでにそのオプションをマークしました。しかし、それでも何も変わりません:(
Yarin Miran

1
設定のコンパイラ部分で、「外部ビルドを使用する」がチェックされていますか?また、[外部ビルドを使用する]では、[依存関係の変更時にモジュールを再ビルドする]オプションもオンになっていますか?
F. Geraerts 2013

回答:


154

私はこれが遅いことを知っていますが、実行mvn idea:ideaすることで問題は解決します。


3
これは、失敗する理由だけでなく、実際の解決策を提供するため、受け入れられる答えであるはずです。私のすべてのupdoots!
ワークスト2017

4
mvn idea:idea最新の状態に保たれておらず、ジェットブレインによって維持されていません
ショーン

2
その後、mvn installを再実行する必要がありました
Fabio F.

1
その後、プロジェクトを再構築します。ありがとうございました。
Duc Tran

2
あなたは私を絶望から救ってくれました。私はあなたにキスしたい
マーティンバンフォード2018年

29

すべての.imlとPOMを削除してみてください。次に、POMをコピーしてプロジェクトに再度貼り付け、再度開いて再インポートします。


13
何かを削除する前に、Mavenプロジェクトビューで「すべてを再インポート」してみてください
Zveratko 2015年

2
.imlも削除する必要がありましたが、Mavenを再インポートしても修正されませんでした。
Daniel de Zwaan 2016年

1
@masoodg、どうもありがとうございました!あなたは私の日を救った!再インポートするだけでは役に立ちませんでした。あなたの指示に従ってください、そしてそれは魅力のように働きます。
タバリン2017

、のIntelliJを閉じる、削除*.iml*.iprおよび*.iwsプロジェクトのルートディレクトリにあるファイルは、IntelliJのを再開することは私のためにそれを固定
theferrit32

16

.imlファイルとpomが競合していて、問題が発生していることがわかりました。


1
私も同様の問題を抱えています。ビルド日付プラグインを使用した構成があります。このプラグインには、この値が「$ {maven.build.timestamp}」のbuildDateプロパティが必要です。IntelliJはこのpomの解析に問題があり、imlファイルがpomと適切に同期されていません。プロパティbuildDateの同期をコメントすると、正常に機能します。
chalimartines 2013

9
これを修正する方法に関するヒントはありますか?Intellijを機能させたいのですが、Netbeansは何があってもプロジェクトを実行しているようです...これは完全な生産性破壊者です:( ...
Breno Salgado

1
修正が同じかどうかはわかりませんが、プロジェクトを終了して再読み込みし、IntelliJにIMLファイルを更新させる必要がありました(新しい依存関係を追加したため、pom.xmlから更新されていませんでした)
SonarJetLens

1
「方法」は「理由」よりもはるかに便利です。この問題をどのように修正したかについて、詳細を追加してください。
ジョアン・マトス

2
IntelliJを閉じました。その後、削除しましたC:\Users\USERNAME\.IntelliJIdea2017.2\system。その後、git clean -xdfソースディレクトリで、バージョン管理されていないすべてのファイルを削除し、プロジェクトを再度インポートしました。今では魅力のように機能します。
koppor 2017年

15

他の誰かを助けるかもしれない場合に備えて、これが同様の問題(IntelliJではなくmvnでのプロジェクトビルド)を抱えていたときに検索で最初に出てきたものなので、いくつかのヒントを追加します。

私がこれを持っていたとき、それはWindowsとMacで異なる修正でした。

Macでは、ItellijIDEA / Preferences / Build、Execution、Deployment / Build Tools / Maven / Maven Home Directoryに移動し、バンドルされたMavenではなく個別にインストールしたMavenを使用するように設定しました。ビルドの問題はすべて解消されました。

Windowsでは、SSLに関連するidea.logに例外があり、プロジェクトツリーの外部ライブラリブランチにはJavaしかありませんでした。他のサイトを見ると、IntelliJはシステムではなく独自のプライベートJDKを使用しているようです(私の場合は、まったく同じJDKバージョンがすでにインストールされていますが)。私のシステムJDKには、IntelliJプライベートJDKにはなかった証明書が企業のNexusサーバーのキーストアにインストールされているため、Nexusからファイルを取得しようとしたときに例外がスローされていました。このための解決策は、IntelliJを終了し、IDEA_JDKという環境変数を設定して、適切な証明書を持つ既にインストールしたJDKをポイントし、IntelliJを再起動することでした。ビルドの問題はすべて解消されました。


Linuxで最新のIntelliJ2016.3.5を使用した場合の同じ問題-最初は機能し、次にPOMを変更した後、同期が取れなくなり、Maven implを切り替えるだけで問題が解決したため、Mavenを切り替えるだけでIntelliJの更新がトリガーされる可能性があります。再び同期するためのプロジェクト...
グレゴール


5

IDEは、ビルドを行うときにMavenの独自のバンドルコピーを使用します。端末のMavenがIDEと異なる場合は、それらを同じにする必要があります。

GOTO(Macの場合)-IntelliJ Idea-> Preferences-> Build、Execution、Deployment-> Build Tools-> Maven。Mavenホームディレクトリのパスを設定する ターミナルから使用するMavenのパスを見つけるには、commandmvn -versionと入力すると、dirパスを含む一連の詳細が出力されます。それをMavenホームディレクトリに置きます。

安全のために、JDKの場所についても同じことができます

====そのような問題を引き起こす可能性のある他のいくつかの事柄===

mvnパッケージまたはmvnクリーンインストールビルドを実行する場合は、IDEキャッシュで何かを実行する必要があります。とりわけ、これは通常、そのようなエラーに役立ちます->

ファイル->キャッシュを無効にする


4

私はこの会話にかなり遅れていることを知っていますが、誰かがこの問題に遭遇した場合に備えて、これを投稿したかっただけです。これが発生するもう1つの理由は、適切なリポジトリを参照していないためです。Intellijは、独自のMavenリポジトリからのものではなく、デフォルトでバンドルされたバージョンのjarを取得します。接続されているリポジトリが正しいことを確認します。


homebrewを使用してmavenをインストールした場合、mavenホームディレクトリを正しく設定すると(たとえば)/usr/local/Cellar/maven/3.5.4/libexecがこの問題を解決します
sushilshimpi 2018年

3

私の場合、私のimlは同期していなかったので、特定のモジュールのimlを削除し、mavenオプションでunignoreprojectを選択してimlを再作成しました


3

コマンドプロンプトからcommnadを実行します:mvn idea:ideaそしてプロジェクトを右クリックします->メニューから依存関係を再インポートします


1

「シンボルが見つかりません」とは、intellijが「依存関係」を解決できないことを意味します。したがって、「分析」->「依存関係の分析」をクリックして「依存関係分析」を強制し、「分析範囲」を選択することができます。


1

ここにある他の回答の多くの貴重なヒントは、私の問題に有効な解決策を追加したいだけです

最近、プライベートMavenリポジトリの使用を開始しました。 mvn -s settings.xml、Mavenコマンドラインを呼び出すときに。IntelliJはもちろんプライベートリポジトリについて知らないので、少し助けが必要です。

[設定]-> [ビルド、実行、展開]-> [ビルドツール]-> [Maven]に移動し、[ユーザー設定ファイル]オプションをオーバーライドします。

ここに画像の説明を入力してください


1

私も同じ問題を抱えていました。移動:

ファイル->プロジェクト構造->モジュール。モジュールを選択し、[依存関係]タブで、すべてのMaven依存関係が追加されていることを確認します。

アイデアエディタで同様の問題について警告されるようにするには、[依存関係]タブから[ソース]に切り替えて、ソースとしてsrcを追加します。


0

私も同じ問題を抱えていました。アイデア設定でMavenバージョンを3.0.5から3.0.4に変更しましたが、すべて正常に動作するようになりました。なぜそれが私を助けるのか分かりません。


0

キャッシュを無効にして、Mavenをインストール済みバージョンに変更しようとしましたが、何も機能しませんでした。

新しいプロジェクトを閉じて再作成すると、問題は解決しました。


0

プロジェクトを閉じて、ルートpom(フォルダーだけでなく、pomファイル自体)をクリックして再度インポートしました。


0

私は喜びなしで上記のすべてを試しました。しかし、私は最終的にそれを機能させるために1つのことをしました:

C:\ Users \ .IntellijJIdea2018.2に移動し、フォルダー全体を削除しました。

IntelliJのすべての設定とキャッシュを削除します。プロジェクトを最初から再インポートする必要がありましたが、単純な削除と再インポートは以前は機能していませんでしたが、これでようやく再び機能するようになりました。


0

gradleを使用している場合は、以下のコマンドを試してください。これで問題は解決しました。

gradle cleanIdea idea


0

この簡単な手順は、リスクなしで約1分かかります。

  • IntelliJを閉じる
  • 削除のみ.idea / *、*。iml、.settingsなどのIntelliJ固有のファイルます。POMも削除することをお勧めしますが、これは私見では必要ありません。
  • 次に、次を使用してIntelliJでプロジェクトを再作成します。[ファイル] > [新規]> [既存のソースからのプロジェクト]>次の手順に従います。複数のプロファイルまたは(同じプロジェクト)をインポートしないように注意してください。

0

.ideaフォルダーを削除し、IDEを閉じます

IDEを再度開き、.IDEAフォルダーが以前に削除されたため、新しいインポートを実行するプロジェクトをインポートします。

外部ライブラリモジュールを確認し、必要な依存関係が設定されていない場合は、Mavenのsettings.xmlの場所がIDEで正しく指定されているかどうかを確認します


0

言及されていない可能性もあります。からライブラリをインポートする場合com.sun.*。また、この問題が発生します。

プログラムはIDEで実行すると機能します。これらのクラスcom.sun.*はすべてjre/libディレクトリにあるため、実行時にロードされます。ただし、を実行するとmvn package、java 1.6以降のoracleの制限により、これらのライブラリにアクセスできなくなります(これらのライブラリはある意味で非推奨になりました)。この問題を解決するには、次のように追加できます

<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詳細を検索できます。


0

誤ったモジュールが構成されている場合は、次の手順を実行します。

  • プロジェクト設定に移動します
  • モジュールに移動
  • 存在してはならないモジュールを削除する

0
  1. Mavenタブから[+]をクリックし、pom.xmlを選択します
  2. Mavenタブからダウンロードソースとドキュメントをクリックします
  3. プロジェクト構造(プロジェクトファイル/ディレクトリを表示できる場所)で、ビルドしようとしているプロジェクトを右クリックし、[ビルドモジュールプロジェクト名]を選択します。
  4. [実行]-[構成の編集] + [アプリケーションの追加]タブから、以下のフィールドに入力します。メインクラス-[プロジェクト]タブから手動で選択し、メインクラスを選択しますii。モジュールのクラスパスを使用します-アプリケーション名を選択しますiii。コマンドラインを短くする-クラスパスファイル
  5. 今すぐアプリを実行します。

0

私の場合、問題は別のProject JavaSDKバージョンにありました。ターミナルからプロジェクトをビルドするとき、mavenはJava 8を使用し、IDEAからビルドするときは、Java11を使用しました。

[ファイル]> [プロジェクト構造...]に移動し、[プロジェクト設定]でProjectSDKを必要なバージョンに設定します。


0

私にとっての問題は、IntelliJJavaコンパイラ設定Ajcコンパイラを選択していたことでしたJavacに戻すと、すべて正常に機能しました。


0

Macの私は、コンピューターからIntellij Idea Appicationを削除し、〜/ Library / Application Support / JetBrains / IntelliJIdea2020.1〜 / Library / Caches / JetBrains /IntelliJIdea2020.1のキャッシュファイルを削除することで解決しました。

次に、それを再インストールし、プロジェクトを開いて、正常にビルドします。


0

同じ問題が発生しました。mvn clean packageターミナルでコマンドを正常に実行できますが、IntellJからの実行またはビルドに失敗します。私は次のアクションを実行しましたが、すべて失敗しました。

  • 無効なキャッシュ
  • 実行mvn clean packageまたはmvn clean packageターミナルで
  • IntellijのMaven構成で「スナップショットの自動ロード」にマークされています
  • SyncornizeまたはReimport
  • .ideaなどのIntellJ関連ファイルをすべて削除し、プロジェクトを再インポートします
  • すべての依存関係ファイルを削除してから実行します mvn clean package
  • Javaバージョンを切り替えるか、IntellJに埋め込まれたJavaを使用します
  • 実行 mvn idea:idea
  • Mavenホームを変更する
  • モジュールタブでsrcディレクトリをソースとしてマークします

私が最後に行ったことは、プロジェクトの.ideaと.imlを削除し、すべての依存関係ファイルを削除してから、コンピューターからIntellJを削除することです。IntellJを再インストールした後、私のプロジェクトは正常にビルドされました。これを解決するためのより良い方法があればいいのにと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.