Je veux fournir des dépendances de test comme spring, mockito et junit dans chaque projet pour rendre aussi facile que possible l'écriture de tests. Dois-je utiliser la gestion des dépendances pour ces dépendances ou les définir dans le pom parent?
3 Réponses :
il y a deux façons d'y parvenir -
vous déclarez les dépendances dans le pom parent dans le nœud
, et chaque enfant bénéficiera de la dépendance.
Ajoutez les dépendances dans le pom parent sous le nœud
et dans chaque enfant qui en a besoin, ajoutez la dépendance dans le nœud. Vous pouvez choisir de ne pas définir la version de la dépendance.
Donc, par exemple, si vous déclarez ceci dans le pom parent:
<dependencies> <dependency> <groupId>org.abc</groupId> <artifactId>xyz</artifactId> <version>your_version</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.abc</groupId> <artifactId>xyz</artifactId> <version>your_version</version> <scope>your_scope</scope> </dependency> </dependencies> </dependencyManagement>
Oui, vous n'avez pas besoin de définir la dépendance dans chaque projet. Définissez simplement la dépendance dans le pom parent. Le projet enfant hérite automatiquement de son pom parent. Aussi si vous souhaitez utiliser une version différente de Mockito ou quoi que ce soit. Remplacez simplement la dépendance parente dans l'enfant un.
Toutes les dépendances courantes peuvent être mentionnées dans le fichier parent pom
. Il existe principalement 4 types de dépendances qui peuvent être mentionnées dans un fichier pom.
Exemple
<dependencies> <!-- Library Dependencies created by ourselves --> <dependency> <groupId>it.myapp</groupId> <artifactId>MyAppBootstrap</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>it.myapp.libs</groupId> <artifactId>b2b_connecttion</artifactId> </dependency> <!-- Module Dependencies from our own modules--> <dependency> <groupId>it.myapp.mymodules</groupId> <artifactId>RevenueManager</artifactId> <version>${myapp.module.version}</version> <classifier>classes</classifier> </dependency> <!-- 3rd Party Dependency --> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc7</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-vfs2</artifactId> <scope>provided</scope> </dependency> <!-- Dependencies for tests --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <scope>test</scope> </dependency> </dependencies>
Gestion des dépendances. Et peut-être devriez-vous penser à un parent pratique comme Spring Boot ...