Я обычно помещаю раздел <dependencyManagement> в parent-project/pom.xml. Этот раздел <dependencyManagement> содержит объявление и версию для всех зависимостей моих дочерних модулей, таких как это (то есть без элемента <scope>):
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
</dependencyManagement>
Во всех дочерних модулях (т.е. moduleX/pom.xml) у меня есть:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Очевидно, что в этом примере я повторяю <scope>test</scope> несколько раз для одной и той же зависимости (один раз в каждом дочернем модуле, нуждающемся в junit).
Мой вопрос:
Каковы лучшие практики в отношении декларации <scope>?
Лучше положить его в <dependencyManagement>?
Или лучше поместить его в раздел <dependencies> дочернего модуля (как в этом посте)? И почему?
Есть ли окончательный ответ на этот вопрос?