Я очень плохо знаком со Знатоком и сейчас пытаюсь настроить свое первое дерево проекта. Я изо всех сил пытаюсь понять различие между двумя альтернативами:
У меня есть банка и военные проекты (два каждый), что я хочу связаться. Традиционно я просто создал бы проект уха, который имеет всех четырех из них как зависимости.
Теперь я читал об агрегировании англичан и не уверен, что больше делать (см. http://maven.apache.org/pom.html#Aggregation). Я должен создать aggregateted АНГЛИЧАНИНА с этими четырьмя проектами?
Я предполагаю в основном, что мой вопрос: что является большой разницей между модулем и зависимостью, если зависимость является одним из моих "собственных" проектов.
Модуль - это просто способ упорядочить вещи.
В многомодульной сборке вы можете построить все дерево артефактов за один шаг (вспомните 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
Таким образом, модули берут на себя работу по независимому построению нескольких проектов, но вам все равно нужно самостоятельно управлять своими зависимостями.