Viele Open-Source-Projekte wie Spring bestehen aus mehreren Modulen. Wenn ich diese Module als Abhängigkeiten in Maven hinzufüge, sollte ich explizit jede Abhängigkeit definieren oder einfach das transitive Abhängigkeitsmanagement tun lassen. Zum Beispiel, welcher der beiden folgenden Fälle eine Best Practice ist.Wann sollten transative Abhängigkeiten in Maven explizit definiert werden?
Fall 1: Fügen Sie die höchsten Level-Funktionen, die ich will
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
Fall 2: Fügen Sie jeden Teil des Rahmens als eine explizite Abhängigkeit
<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>
Welches ist die beste ist Fall 1 oder Fall 2 und warum?
Der Wunsch, dass die gängigen Open-Source-Java-Projekte nicht verrückt wurden, weil sie in zu viele Module zerbrachen. Nur um all diese Module sowieso in Ihre Anwendung einbinden zu müssen, denn alles braucht sie sowieso. – ams