blog

Mavenプロジェクトの依存関係、継承、集約

1) 依存関係の管理 上図のように、プロジェクトは hello プロジェクトに依存し、プロジェクトはプロジェクトに依存します。1.1) 依存関係の範囲 1) コンパイル[1]のメインディレクトリにある...

Oct 8, 2020 · 2 min. read
シェア

)依存マネジメント

) 信頼の範囲

  1. compile

1]mainディレクトリのJavaコードは以下の依存関係にアクセスできます。

2]testディレクトリのJavaコードはこの依存関係の範囲にアクセスすることができます。

[3]WEB-INFのlibディレクトリに配置されるTomcatサーバー上で実行されるように配置されます。

例えば、Hello の依存関係。メインプログラム、テストプログラム、サーバーランタイムに必要です。

  1. test

[1] メイン・ディレクトリのJavaコードは、このスコープ依存性にアクセスできません

2]testディレクトリのJavaコードはこの依存関係の範囲にアクセスすることができます。

[3]Tomcatサーバー上で動作するようにデプロイされた場合、WEB-INFのlibディレクトリには配置されません

例:junitへの依存。テストプログラム部分にのみ必要です。

================

) 信頼の原則

  1. 最短ルートを優先

  1. パスが同じ場合、最初の宣言が優先されます。

上記のように、HelloFriendを先に宣言すると、HelloFriendモジュールのjunit 4.9を優先して使うことになります。

) 依存性の排除

シンプルすぎる

) 対象jarパッケージのバージョンの一元管理

)継承

大まかな構想は上の2枚の写真の通りで、詳細は追って。

) 重合

上図のように、いくつかのプロジェクトではjarパッケージが見つからないため、手動で再インストールする必要があります。

上の2つの図に示すように、集約を使用することですべてのアイテムを一度にインストールし、依存関係を処理することができます。

) プラグインのパッケージ化

 <build>
 <plugins>
 <plugin>
 <artifactId>maven-assembly-plugin</artifactId>
 <configuration>
 <descriptorRefs>
 <descriptorRef>jar-with-dependencies</descriptorRef>
 </descriptorRefs>
 <archive>
 <manifest>
 <!-- メインクラスを指定する -->
<!-- <mainClass>xxx.xxx.XXX</mainClass>-->
 </manifest>
 </archive>
 </configuration>
 <executions>
 <execution>
 <id>make-assembly</id>
 <phase>package</phase>
 <goals>
 <goal>single</goal>
 </goals>
 </execution>
 </executions>
 </plugin>
 </plugins>
 </build>
Read next

前の質問

クロージャとは、他の関数のスコープにある変数にアクセスできる関数、関数の内部にネストされた関数、外部関数の変数を使用する内部関数、外部関数をエクスポートする内部関数の変数です。 すべてがデータを格納するために使用することができ、クッキーは、データサイズが4kbを超えることはできません、最大20以上を格納することはできません、有効期限を設定しない場合は、ブラウザで閉じるには...

Oct 7, 2020 · 11 min read