記事ディレクトリ
依存関係の管理
現在のプロジェクトを実行するために必要な jar を指します。プロジェクトには複数の依存関係を設定できます。
<!-- 设置当前项目所依赖的所有jar -->
<dependencies>
<!-- 设置具体的依赖 -->
<dependency>
<!-- 依赖所属群组id -->
<groupId>org.springframework</groupId>
<!-- 依赖所属项目id -->
<artifactId>spring-webmvc</artifactId>
<!-- 依赖版本号 -->
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
推移的な依存関係
- 直接の依存関係: 現在のプロジェクトの依存関係構成を通じて確立された依存関係
- 間接的な依存関係: リソースが割り当てられているリソースが他のリソースに依存している場合、現在のプロジェクトは間接的に他のリソースに依存します。
- 特別な優先順位: 同じリソースの異なるバージョンが同じレベルで構成されている場合、後で構成されたバージョンが最初に構成されたバージョンを上書きします。
オプションの依存関係と除外される依存関係
オプションの依存関係と除外される依存関係の違い
- オプションの依存関係 (オプション) : 現在のリソースを非表示にします
。 A は B に依存し、B は C に依存し、C は A に依存したくありません。
<dependency>
<groupId>com.itheima</groupId>
<artifactId>maven_03_pojo</artifactId>
<version>1.0-SNAPSHOT</version>
<!--可选依赖是隐藏当前工程所依赖的资源,隐藏后对应资源将不具有依赖传递性-->
<optional>false</optional>
</dependency>
- 除外: 依存リソースをアクティブに切断します。除外されたリソースにはバージョンを指定する必要はありません。A は
B に依存し、B は C に依存し、A は C に依存したくありません。
<dependency>
<groupId>com.itheima</groupId>
<artifactId>maven_04_dao</artifactId>
<version>1.0-SNAPSHOT</version>
<!--排除依赖是隐藏当前资源对应的依赖关系-->
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
</exclusions>
</dependency>
継承と集約
-
集約:
複数のモジュールを 1 つの全体に編成し、同時にプロジェクトを構築するプロセス -
集約プロジェクト:通常は
ビジネス機能のない空のプロジェクト(唯一の pom ファイル) -
機能: 集約プロジェクトを使用して複数のプロジェクトをグループ化し、集約プロジェクトをビルドすることで含まれるモジュールを同時に構築できます。
プロジェクト内のモジュールが更新(変更)された場合、プロジェクト内の更新されたモジュールに関連付けられているモジュールも同時に更新されるようにする必要がありますが、このとき、集約プロジェクトを使用すると、モジュールの同期ビルドの問題を解決できます。バッチモジュール。 -
継承は2 つのプロジェクト間の関係を表します。サブプロジェクトは親プロジェクトの構成情報を継承できます。これは、依存関係の継承で一般的です。
-
機能:
1. 構成の簡素化
2. バージョンの競合の削減
1. プロジェクトを作成する
2. モジュールの作成
包装形態 | 説明する |
---|---|
瓶 | jar にパッケージ化 (デフォルトのパッケージ化方法) |
戦争 | war にパッケージ化してサーバー上で公開する |
ポンポン | バージョン管理のために親プロジェクトまたは集約プロジェクトで使用されます |
重合
<packaging>pom</packaging>
<modules>
<module>module1</module>
<module>module2</module>
</modules>
継承する
<parent>
<groupId>org.example</groupId>
<artifactId>project1</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>