Для удобства чтения вы должны указать только те зависимости в своем модуле, которые вы полагаетесь непосредственно на . Вы хотите, чтобы JUnit тестировал ваше программное обеспечение, только объявляйте JUnit; вам нужно спящий режим использовать ORM, объявить спящий режим и т. д. Оставь все остальное Мейвену.
И в большинстве случаев вы должны указать, что вы собираетесь использовать в самом модуле, в котором хотите его использовать. Поэтому, если вы хотите использовать зависимость в более чем одном модуле, подумайте о переносе его в блок зависимости dependencyManagement в родитель пОМ и ссылаться на него оттуда в модуле вы хотите его.
родительский pom.xml
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
ребенок pom.xml
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
Это гу у вас есть стабильность версий и все еще позволяет вам узнать, что использует модуль, только глядя в него (и не повсюду).
Значит ли это, если код, который пишут мне напрямую, ссылается на common-io, они должны быть явно определены в POM.xml, хотя Spring также может также зависеть от common-io? – pengpenglin
Кроме того, если версия общедоступного кода напрямую зависит от другой, используется одна используемая пружина. что будет делать maven? обе версии будут загружены или выбрать последнюю версию? спасибо !! – pengpenglin
Да для первого комментария. Второй комментарий - Maven автоматически выбирает последнюю версию, если это конфликт версий. –