Объясните пожалуйста в чем разница между ними, ни как не могу понять.
Например есть проект состоящий из модулей:
Parent
Child1
Child2
Child3
Насколько я вычитал если в родительском(Parent POM файле) объявляю секцию вида:
<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>
То все дочерние модули Child1, Child2, Child3 автоматически наследуют эту зависимость(в них эту зависимость прописывать не нужно будет). Если же в каком-то модуле мне нужна будет какая-то дополнительная зависимость, то я ее пропишу лишь в том модуле где она мне нужна.
По поводу dependencyManagement вычитал, что она автоматически зависимости не добавляет и их нужно прописывать самому в каждом модуле:
Т.е. если я в Parent POM пропишу:
<dependencyManagement> <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> </dependencyManagement>
То в каждом из модулей Child1, Child2, Child3 мне придется ее прописывать самому:
<dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </dependency> </dependencies>
Т.е. dependencies делается все автоматически а в dependencyManagement все нужно прописывать вручную, какая тогда от него польза?