0

私は直面している問題についてウェブを検索しようとしましたが、多分私は正しい質問をGoogleに求めていません。IntelliJ IDEAのJavaファイルの依存関係の競合を解決するにはどうすればよいですか?

マルチモジュールプロジェクトにIntelliJ IDEAを使用しています。私のモジュールの一つ、クラスファイルの一つは、静的インポートを使用しているために - 「大きなプロジェクトなので

import static javax.ws.rs.core.Response.Status.Family.familyOf; 

、内部レポからダウンロードした依存関係がたくさんありますが、何らかの理由でIntelliJのは、依存関係を使用することを拒否しますjavax.ws.rs-api-2.0 "を使用しています。代わりに" jersey-core-1.8 "を使用しています。このため、 "familyof"というシンボルを見つけることができないというコンパイルエラーが発生しています。

両方の依存関係からResponse.javaを調べ、javax.ws.rs-api-2.0はそれを持っていますが、IntelliJはこの依存関係を使用しませんが、ジャージー依存性にはfamilyofメソッドがないことがわかりました。この問題を解決する方法私のチームの開発者のほとんどはEclipseを使用していますが、この問題はありません。私はIntelliJ IDEに慣れようとしていますが、これを避ける方法がないようです。この点に関する助けは大いに感謝しています。

PS - この問題はEclipse IDEでは発生しません。

私は下記の手順に従うことによって、この問題を解決することができ
+1

あなたとあなたのチームメイトは、MavenとPOMを使用する必要があります。この場合、依存関係は自動的に管理され、この状況は発生しません。依存関係を管理するためにIDEを使用している場合は、GUIを使用してjavax.ws.rs-api依存関係を削除し、jersey-coreに依存関係を追加する必要があります。 –

+0

私たちはMavenとPOMを使用します。コードベースは社内のgithubリポジトリでホストされているので、私はなぜ他の人にとっても私にとってはうまくいかないのだろうと思っています。私は私が理解できないいくつかのインテリジェント設定が欠けていると思う。誰かがEclipseを使用していて、この問題が表示されない場合、IntelliJを使用するとどうなりますか? – user139386

答えて

1

-

  1. 後藤「オープンモジュール設定の」コマンド+下キー
  2. 選択[依存関係]タブを矢印
  3. における上記の二つの依存関係のため
  4. 検索リスト
  5. "javax.ws.rs-api-2.0"依存関係を移動して、この依存関係が "jersey-core-1.8"依存よりも上にあることを確認します。

これは永久的な解決策ではないと思われますが、うまくいくようです。 Java/Mave/IntelliJに関する深い知識を持った人がこの質問に対する答えがあればそれは素晴らしいでしょう!

0

Mavenを使用するたびに、pom.xmlの依存関係をシャッフルして正しい結果を得ることができます。また、依存関係のリストの中で優先順位を優先させます。はい、依存関係がpom.xmlで宣言されている順序は重要です!

皆さんが同じMavenバージョンを使用している場合、一貫した結果が得られるはずです。

関連する問題