)依存マネジメント
) 信頼の範囲
- compile
1]mainディレクトリのJavaコードは、以下の依存関係にアクセスできます。
2]testディレクトリのJavaコードは、この依存関係の範囲にアクセスすることができます。
[3]WEB-INFのlibディレクトリに配置されるTomcatサーバー上で実行されるように配置されます。
例えば、Hello の依存関係。メインプログラム、テストプログラム、サーバーランタイムに必要です。
- test
[1] メイン・ディレクトリのJavaコードは、このスコープ依存性にアクセスできません。
2]testディレクトリのJavaコードは、この依存関係の範囲にアクセスすることができます。
[3]Tomcatサーバー上で動作するようにデプロイされた場合、WEB-INFのlibディレクトリには配置されません。
例:junitへの依存。テストプログラム部分にのみ必要です。
================
) 信頼の原則
- 最短ルートを優先
- パスが同じ場合、最初の宣言が優先されます。
上記のように、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>