IntelliJ IDEAへのMaven依存関係のインポート


208

IntelliJ IDEA 11について少し質問があります。私はsubversionからプロジェクトをインポートしました-そのmavenプロジェクトです。しかし、私はすべてのmaven依存関係を自動的に含めることができないように、mavenライブラリの依存関係に問題があります-IDEAは、そのクラスを開いたときにのみ依存関係エラーを表示します

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

だから私はすべての依存関係を自動的に追加したいのですが、それは可能ですか、それともすべてのクラスファイルを調べてMavenの依存関係を特定して追加する必要がありますか?

更新:いくつかの変更を行った後、何らかの方法で問題を解決する方法を見つけました。それが私がしたことです: ここに画像の説明を入力してください

しかし、論理的には、先に新しい依存関係を含めてチェックしないと思いますか?!... intelliJには、このための設定領域があります-依存関係をクラスパスに自動エクスポートしますか?


9
すべての依存関係をダウンロードしますが、それらのすべてをクラスパスに追加するようには見えません...
Zaur Guliyev

3
もう1つの問題は、Javaファイルを開いたときにのみ、intelliJが赤い下線付きのエラーを表示することです...
Zaur Guliyev

4
この赤い線が表示される1つの例は、分類子のあるSNAPSHOT依存関係があり、分類子のない新しいバージョンの依存関係が存在する場合です。これはMavenでは完全に合法ですが、IntelliJはローカルのMavenリポジトリーにある物理ファイルへのパスを計算しようとすると混乱します。
RCros

4
ちなみに、これは15.0.2でも起こります。ちょうど私に起こりました。.imlファイルと.ideaフォルダーを吹き飛ばして再インポートする必要がありました。信じられないほどイライラするb / c私はそれとの戦いに2時間費やし、最終的には慎重に作成されたすべての実行構成を失いました。
Kevin Pauli

3
@KevinPauliを使用すると、IDEAプロジェクトファイルを削除する必要がありません。手動で再インポートする場合は、[Maven Projects]タブの[Reimport All Maven Projects]をクリックします。
Zaur Guliyev

回答:


282

IntelliJは、POMが準拠しており、すべての依存関係が利用可能である限り、すべての依存関係を自動的にダウンロードしてプロジェクトのクラスパスに追加する必要があります。

IntelliJにMavenプロジェクトをインポートすると、通常、情報ボックスが表示され、Mavenプロジェクトの自動インポートを構成するかどうかを尋ねられます。つまり、POMに変更を加えると、それらの変更は自動的にロードされます。

このような機能を有効にするには、[ファイル]> [設定]> [Maven]> [インポート]を選択します。「Mavenプロジェクトを自動的にインポートする」というチェックボックスがあります。

それでも問題が解決しない場合は、完全にクリーンアップしてからやり直すことをお勧めします。

  • プロジェクトウィンドウ(およびIntelliJ)を閉じ、すべての*.imlファイルとすべての.ideaフォルダーを削除します(モジュールごとに1つ必要です)
  • mvn clean installコマンドラインから実行する
  • プロジェクトをIntelliJに再インポートし、自動インポートを有効にするように求められたら注意を払う

IntelliJ 2016アップデート

[ Mavenプロジェクトを自動的にインポート]設定は、IntelliJ設定の[ビルド、実行、デプロイメント]> [ビルドツール]> [Maven]> [インポート]に移動しました。


あなたの解決策は依存関係をエクスポート済みとしてマークすることでしたか?それは変だ!IntelliJとMavenを頻繁に使用していて、自分のプロジェクト(一部はマルチプロジェクト)でエクスポート機能が有効になっていない...コミュニティエディションですか、それともUltimateですか?
アロンソドミンゲス

1
そのUltimate Editionですが、インポートしたプロジェクトはEclipseでビルドされていたため、.classpathはそこで有効になりましたが、IntelliJは.imlを使用しています。以前のファイル..?!
Zaur Guliyev

1
ああ、わかりました-EclipseプロジェクトではなくMavenプロジェクトとしてインポートしようとしましたか?私は、Mavenプロジェクトで作業するときにIDE関連ファイルをソースリポジトリにチェックインしないことに慣れています。Mavenプロジェクトの場合、Mavenルール
アロンソドミンゲス

2
設定/設定で自動インポートを有効にすることができます。設定/設定を開き、「Mavenプロジェクトを自動的にインポートする」を検索します。それはインポート>ビルド、実行、配備>ビルドツール> Mavenの下にある
セイェドジャラル・ホセイニ

2
@JustinBlankは、これが2012年の回答であることを考えれば、驚くことではありません。設定はまだ残っていますが、他の場所に移動されただけです(回答が更新されました)。
アロンソドミンゲス

66

IntelliJ 14より前の修正

ファイル[メニュー]->設定-> maven- >インポートし、「プロジェクトのインポートにmaven3を使用する」のチェックを外します

ref:http : //youtrack.jetbrains.com/issue/IDEA-98425(他にもいくつかのアイデアがあるかもしれません)

IntelliJ 15+を修正

今回もIntelliJ 15を使用してこれに遭遇しました。IntelliJ15には、「maven3を使用してインポートする」オプションはもうありません。原因は、IntelliJが「Mavenの依存関係を正しく解析しない」ことがあり、それらのいずれかを正しく解析できない場合、明らかにそれらすべてをあきらめることでした。これが当てはまるかどうかは、Mavenプロジェクトツールウィンドウ([表示]メニュー-> [ツールウィンドウ]-> [Mavenプロジェクト])を開くとわかります。次に、Mavenプロジェクトの1つとその依存関係を展開します。依存関係がすべて赤で下線が引かれている場合、「ヒューストン、問題があります」。 ここに画像の説明を入力してください

プロジェクト名自体の上にマウスを置くと、実際の失敗を実際に確認できます。

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

私の場合では、「問題を:いいえXXXのために利用可能なバージョン」と述べまたはREF「アーティファクトorg.xy.zの記述子の読み込みに失敗しました」:https://youtrack.jetbrains.com/issue/IDEA-128846HTTPSを:// youtrack.jetbrains.com/issue/IDEA-152555

この場合、関連付けられたpomファイルがないjarを扱っていたようです(mavenネクサスリポジトリ、および私のローカルリポジトリ)。これもあなたの問題である場合、「現在の回避策:実際にそのjarのクラスを独自のコードで使用する必要がない場合(たとえば、推移的なmaven依存関係のみ)、pomからコメントアウトすることで実際に回避できます。 (一時的に)mavenプロジェクトをリロードしてからコメントを外します。その後、IntelliJは古い作業依存関係を「記憶」します。Maven推移的除外を追加すると、一時的な依存関係のチェーンから実行されている場合も一時的に除外されます。 」

役立つかもしれないもう1つのことは、バンドルされた3.0.5よりも「新しいバージョン」のmavenを使用することです。これをデフォルトとして使用するように設定するには、すべてのintellijウィンドウを閉じてから、設定->ビルド、実行、デプロイメント->ビルドツール-> mavenを開き、mavenホームディレクトリを変更すると、「デフォルトではこれを調整すると上部に表示されますが、調整後に「再インポート」する限り、特定のプロジェクトに対しても調整できます。

キャッシュをクリア

intellijキャッシュフォルダー(windows:HOMEPATH /。{IntellijIdea、IdeaC} XXX linux〜/ .IdeaIC15)を削除するか、IntelliJ自体をアンインストールして再インストールします。これは、[ファイル] [メニュー]->でも実行できますInvalidate Caches / Restart...。をクリックしinvalidate and restartます。これにより、プロジェクト全体のインデックスが再作成され、IntelliJで追跡が困難な多くの問題が解決されます。


2
不思議なことに、他のほとんどすべての投稿では、「Maven3を使用してプロジェクトをインポートする」オプションをチェックしてこの問題を解決し、実際にチェックを外すと問題が解決しました。どうして?知りません。ありがとう!
janhink 2014年

3
V14 Ultimateでは、外部のMavenを選択し、すべてが正常に機能するようになりました。
AlikElzin-kilaka 2015

@ AlikElzin-kilaka Mavenホームディレクトリを外部Mavenホームに変更すると、非常に役立ちます。IDEAをv14 Ultimateに更新した後、「tomcat6プラグインが見つかりません」のためIDEAでプロジェクトを起動できませんでしたが、mvnコマンドを使用してプロジェクトを起動でき、mavenホームディレクトリを外部に変更すると解決しました
JerseyGood

IntelliJ 2016.2.1では、自動インポートを無効にしてMaven home directory、スタックが使用しているバージョン(3.3.9)に変更すると、問題が解決しました。
Wheeler

1
maven home directoryからBundle (Maven 3)私のmavenがインストールされているパスへの変更は.../maven/3.6.1/libexecうまくいきました
Marcelo Xavier

37

プロジェクトをインポートするときpom.xmlは、プロジェクトディレクトリの代わりに選択します。うまくいくはずです。


1
「Mavenプロジェクト」ウィンドウの下の「すべてのMavenプロジェクトを再インポートする」オプションをクリックすることがあります
vikramvi

1
おそらくこれが最もエレガントでクリーンな解決策です(そして少し厄介なintellijはそれを推測するのに役立ちません)
matanster

IntelliJコミュニティエディション2019.3.4を使用して、私もサポートしています。そのような簡単な解決策をありがとう。:)
asymmetryFan

22

IntelliJ IDEAのMaven Projectsパネルからプロジェクトを再インポートしてみてください。で定義されているすべての依存関係をpom.xml自動的にダウンロードして構成する必要があります。

何らかの理由でIDEAからのダウンロードが機能しない場合はmvn install、コマンドラインから試して、依存関係を取得できるかどうかを確認してください。

もちろん、必要な依存関係とカスタムリポジトリはすべて、pom.xmlファイル内で直接定義する必要があります。


14

IntelliJ 2016-2.4(および他の新しいバージョン)の場合:

表示>ツールウィンドウ> Mavenプロジェクト

新しく表示されたツールバーで、Maven設定(ツールセットのアイコン)を選択します。

この画面が開いたら、Mavenメニューを展開し、「インポート」をクリックします。

ここで、「Mavenプロジェクトを自動的にインポート」をクリックします。また、「JDK for Importer」オプションが、使用するJDKバージョンと一致していることを確認してください。

OKをクリックします。次に、pom.xmlの赤い依存関係に移動し、赤い電球を選択して、「Mavenインデックスの更新」をクリックします。


1
インポーターに適したJDKを選択することが私を助けてくれました。最後の問題を閉じるには、mvn idea:clean idea:ideaも実行する必要がありました。
Vincent F


7

特定のMavenモジュールがコンパイルされない場合は、それらのpom.xmlが「無視されるファイル」リストにあるかどうかを確認してください。IntelliJ goto

設定->プロジェクト設定-> maven->無視されたファイル

関連するpom.xmlが無視されているかどうかを確認します。


5

を開きIntelliJ Idea[ファイル]> [その他の設定]> [デフォルト設定...]> [Maven(Preferences)]> [インポート]に移動し ます | Preferences > Maven > Importing

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

コンソールで[ 自動インポート有効にする]をクリックします。

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


4

新しいプロジェクトを作成するときは、オプションを選択するだけです。

...
外部モデルからプロジェクトをインポート
する既存の外部モデル(Eclipse、Maven ...)の上にIDEAプロジェクト構造を作成します
...

そこからかなり簡単にわかります。
そしてあなたの場合、あなたはあなたのプロジェクトを閉じて、単に新しいものを作成することができます。オーバーライドするプロジェクトのディレクトリを選択して、Mavenプロジェクトにします。


同意した。OPがプロジェクトを誤ってインポートしたことはほぼ確実です。
kaqqao 2013

4

同じパスを複数回インポートすると、Maven依存関係のインポートが機能しない場合があります。これは、既存のMavenプロジェクトをインポートした後に自動的に行われる場合があります。なぜこれが起こるのかわからないので、バグだと思いがちです。

たとえば、私のプロジェクトが

hibernate
  src/main
  src/test

3つのパスを最上位ノードとしてインポートできます。

hibernate
src/main
src/test

そのような場合、依存関係は正しいように見えますが、余分なパス(この場合はsrc/mainsrc/test)を削除するまで、依存関係は使用されません。これを行ったら、更新して「ビルド」>「プロジェクトの再ビルド」をクリックします。IDEAが依存関係を取得します。

この問題の症状は、ライブラリを手動で確認すると、IDEAが重複したパスについて警告することです(質問の2番目のスクリーンショット)。

必要に応じて、依存関係を再度読み取る方法はいくつかあります。「Mavenプロジェクト」タブに移動すると、タブの左上に「すべてのMavenプロジェクトを再インポート」アイコンがあります。IDEAが混乱したと思われる場合は、[ファイル]> [キャッシュの無効化]をクリックします。


3

プロジェクト構造に移動し、プロジェクト設定、モジュールの下で、依存関係テーブルを選択します。依存関係ごとに、スコープを「テスト」から「コンパイル」に変更します。


3

プロジェクトを再インポートします。Mavenプラグインをインストールすると、これを使用できます。

プロジェクトを右クリック-> Maven->再インポート


3

以下のために指定された最初のチェックパスユーザー設定ファイル:設定- >ビルド、実行、開発- >ビルドツール- > Mavenの。フィールドには、Mavenのsettings.xmlのパスが必要です。また、settings.xmlにはリモートリポジトリの正しいパスが必要です。


これは私にとってはうまくいきました。settings.xmlファイルでは、<mirror>タグにネストされた<url>タグのエントリは古くなっています。同僚と相談して、更新されたエントリー値を取得しました。〜/ .m2 / settings.xmlに変更を加え、intelliJを閉じて、もう一度起動しました。再起動すると、他に何もせず、Mavenビューに表示されていた赤いアンダースコアが消えていました。奇妙なことに、強調表示されたルート依存関係のほとんどは、この修正を実行する前と後の両方で、常にプロジェクトビューの[外部ライブラリ]エントリに存在していました。
スティーブT

3

同様の問題がありました。私の場合settings.xml、IntelliJから選択されていないカスタムを使用しています。

解決策:(
File > Settings > Build, Execution, Deployment > Maven: User settings fileここで私のカスタムsettings.xmlを選択してください)。


3

私は同じ問題を抱えており、ここで述べたすべての答えを試しましたが、どれもうまくいきませんでした。

簡単な解決策は、プロジェクトフォルダーに移動して、すべての.ideaファイルと.imlファイルを削除し、IntelliJ ideを再起動することです。できます。設定で何もする必要はありません。


2

IntelliJ 2016.3.Xでは一部の従属関係を解決できないという問題に遭遇しました。これはMaven home directory、[設定]> [ビルド、実行、デプロイメント]> [ビルドツール]> [Maven]をからBundled (Maven 3)に変更することで修正できます/usr/share/maven

その後、以前のIntelliJバージョンと同様に、すべての従属関係が解決されました。


2

Maven-再インポートが機能しませんでした。私はSTS(Eclipse)にSpringプロジェクトがあり、私の解決策はプロジェクトをIDEAにインポートすることです:

1)ファイル-新規-既存のソースからのプロジェクト...-ディレクトリを選択-Eclipseを選択します。
2)設定でMaven autoimportをtrueに設定します。
3)次に、pom.xmlを右クリックし、「Mavenプロジェクトとして追加」を選択します。

この後、すべてをインポートしました。


2

Macbookで同様の問題が発生しました。 pom.xml、すべての依存関係のダウンロードが始まりました。

以前の依存関係は、私のWindowsマシン用に以下のように書かれていました:

<dependencies>
 <dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>
</dependencies>

<dependencies></dependencies>タグを削除すると、すべての依存関係のダウンロードが開始されました。

<dependency>
  <groupId>javax.mail</groupId>
  <artifactId>mail</artifactId>
  <version>1.4</version>
</dependency>

それがあなたのために働くかどうかはわかりませんが、私にとってはうまくいきました。

ありがとう


1

右下隅に「2個のプロセスが実行中...」などと表示されている場合、すべてのjarファイルをダウンロードするのに時間がかかる可能性があるため、終了するまで待つ必要がある場合があります。


1

この問題を解決するには、settings.xmlファイルを正しいミラー構成で更新します。intellijは、mavenモジュールがインポートされるたびにリポジトリからメタデータをダウンロードしようとするようです。


1

少し乗っ取って私のために働いたものを追加します:

Maven ProjectsIDEの右端のサイドバーに移動し、依存関係がモジュールの下のモジュールに正しくリストされていることを確認します。それらがそうであると仮定すると、IDEAに再インポートを依頼するだけです(上部の最初のボタンは、反時計回りの円を形成する2つの青い矢印のように見えます)。

それを行ってIDEAにプロジェクトをリロードさせると、私の依存関係はすべて魔法のように理解されました。

参考までに:これは IDEA 13.1.2


1

私は同じ問題に直面し、問題を解決しない提案されたすべてを試しましたが、Intellijバージョン13.1.3を使用していました

最後に、修正に数時間以上費やした後、アップグレードされたバージョンを試すことを決定し、プロジェクトをバージョン14.1.4で開いて、最終的に問題を解決しました。これは前バージョンのバグと思われます。

これが役に立てば幸いです!


1

Project Settings-> Modulesリストから不要なモジュールを削除することで解決できました。

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

これらの追加モジュールは、プロジェクトフォルダーからインポートして(pom.xmlを開くのではなく)IntelliJプロジェクトを作成したときに、IntelliJ IDEAによって自動的に作成されたことがわかります。次に、プロジェクトをMavenプロジェクトとして宣言した後、適切なモジュールが作成され、既存のモジュールがそれらと競合していました。プロジェクトの作成時にこれらのモジュールを除外することもできます。


1

プロジェクトディレクトリから.ideaフォルダーを削除してから、プロジェクトをMavenプロジェクトとして再インポートすると、うまくいきました。


1

私の場合、何らかの理由でモジュールの1つが無視されました。問題を解決するには:問題のあるモジュールを右クリックし、[プロジェクトを無視]を選択します。

無視しないプロジェクトの例


1

私の場合、MAVENが使用するJAVAのパスが、マシンで構成されたJAVA_HOMEとして設定されていませんでした。したがって、依存関係をダウンロードすることすらしていませんでした。私がこの問題を解決した手順

  1. JAVAパス、設定>>ビルド>>ビルドツール>>インポート>>インポーターのJDKを確認しました。JAVA_HOMEをポイントしました。

  2. mvn clean install -U

    上記のコマンドを使用して、依存関係のダウンロードを強制します。

  3. 再インポートされたMavenプロジェクト


0

他のすべてが失敗した場合は、ローカルの.m2リポジトリ内のjarファイルが本当に有効で破損していないかどうかを確認してください。私の場合、ファイルは完全にダウンロードされていませんでした。


0

mavenでは、dependencyManagement xmlセクションを削除してプロジェクトセクションの直下に依存関係があったときに、依存関係が含まれていました


0

問題は、pom.xmlに依存関係をリストしているにもかかわらず、プロジェクトを実行するときにIntelliJ IDEAがそれらの依存関係を再構築しないことです。

私のために働いたのはこれです:

「実行」->「設定の編集...」に移動し、アプリケーションを見つけて、「起動前:」セクションが展開されていることを確認し、緑色のプラス記号をクリックして、「プロジェクトのビルド」を選択します。

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


0

私はpom.xmlファイルのビルドタグの後にこのコード行を追加することで自分の問題を修正できました。実行中のプロジェクトと比較し、それが違いであることを発見しました。

<repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.