Модуль - это просто способ организации вещей.
В многомодульной сборке вы можете создать целое дерево артефактов за один шаг (вспомните Joel Test ). Однако каждый из них будет отдельным артефактом, на который можно отдельно ссылаться как на зависимость.
Вот примерный макет, упаковка в скобках.
root (pom)
- project1 (jar)
- project2 (war) -> references project1 as dependency
- project3 (jar)
- project4 (war) -> references project3 as dependency
- project5 (ear) -> references project2 and project4 as dependency
вызовите mvn install
в корневом каталоге, чтобы построить все дерево.
Здесь предполагается, что project1 используется только project2, а project3 используется только project4. В противном случае здесь более сложный сценарий.
root (pom)
- project1 (jar)
- project2 (jar)
- project3 (war) -> references project1 and project2 as dependency of scope provided
- project4 (war) -> references project1 and project2 as dependency of scope provided
- project5 (ear) -> references project1 through project4 as dependency
Итак, модули убирают работу по созданию нескольких проектов независимо друг от друга, но вам все равно нужно самостоятельно управлять своими зависимостями.