spring のような多くのオープン ソース プロジェクトは複数のモジュールで構成されています。これらのモジュールを maven の依存関係として追加する場合、すべての依存関係を明示的に定義するか、推移的な依存関係管理に任せる必要があります。たとえば、次の 2 つのケースのどちらがベスト プラクティスであるかを示します。
ケース 1: 必要な最高レベルの機能を含める
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
ケース 2: フレームワークの各部分を明示的な依存関係として含める
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
.... other dependencies that are transitively resolved by maven
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
ケース 1 とケース 2 のどちらがベスト プラクティスで、その理由は?