web-dev-qa-db-ja.com

IntelliJ IDEAの「モジュールの依存関係」と「ライブラリ」の違いは何ですか?

IntelliJの「モジュールの依存関係」と「ライブラリ」の違いは何ですかIDEA .jarライブラリをプロジェクトに追加する場合、また、「エクスポート」チェックとは何ですか? .jarライブラリをIntelliJ IDEAの「モジュールの依存関係」に追加するときのボックス

これらの各方法で、新しく生成された.jarファイルを作成するときに、インクルードされている.jarライブラリ内のクラスとコードを最終的なプロジェクト(コード)にどのように統合しますか?

33
moorara

モジュールの依存関係は、モジュールファイルが参照するクラス、アーカイブ、ライブラリ、およびリソースです。ライブラリは、アーカイブまたはディレクトリに格納されているクラスファイルのセットです。

エクスポートチェックとは、チェックすると、このライブラリが暗黙的にこのモジュールを参照する他のモジュールに追加されます。

。jarファイルを作成するには、アーティファクトを作成する必要があります。アーティファクトは、建物の出力のプレースホルダーです。 。jar。war。earアーカイブを作成するための定義済みテンプレートがあります。 jarを選択して、jarアーティファクトを構築できます。デフォルトでは空に定義されており、アーティファクトのコンテンツを定義する必要があります。コンパイルされた出力をそこにドラッグアンドドロップできますが、ライブラリアーカイブでは行いません。この場合のライブラリは。jarファイル内にパッケージ化され、アプリケーションを開始する前にそれらをロードするための個別のクラスローダーを作成する必要があります。代わりに、アーティファクトタイプをOtherに変更し、。jarおよび依存ライブラリをoutput rootにドラッグします。このようにして、ライブラリアーカイブが作成された。jarとともにコピーされます。また、MANIFEST.MFを作成し、依存ライブラリに対してClass-Pathを指定する必要もあります。すべてのファイルは、アーティファクトをビルドするために指定したディレクトリに保存されます。 Build Artifactメニューを使用してビルドできます。

12
Roman C

プロジェクトに複数のモジュールが含まれている場合、「モジュール依存関係」はこれらのモジュール間の依存関係を定義しますが、ライブラリはモジュールで使用されるコンパイル済みクラス(通常はjarファイル、オプションでそれらのソースとjavadocsを含む)です。

各モジュールは独自のライブラリとアーティファクト(たとえば、結果のjarファイル)を持つことができ、循環依存なしで他のモジュールに依存できます。

10
Amir Pashazadeh

モジュールの依存関係タブには、ライブラリExportは、モジュールのライブラリが、このモジュールに依存する別のモジュールでも使用できることを意味します。

すべての依存関係を持つ最終的なjarは Artifacts を使用して作成できます。

4
CrazyCoder

"IntelliJ IDEAでは、ライブラリを3つのレベルで定義できます。グローバル(多くのプロジェクトで使用可能)、プロジェクト(プロジェクト内のすべてのモジュールで使用可能)、およびモジュール(1つのモジュールで使用可能)。"

  • グローバルライブラリは、Project Structure\Platform Settings\Global Librariesで設定されます
  • プロジェクトライブラリは、Project Structure\Project Settings\Librariesで設定されます
  • モジュールライブラリは、プロジェクト構造\プロジェクト設定\モジュール\依存関係によって設定されます
0
OSGI Java