Ответ 1
Вопрос в том, как добавить эти модули в зависимости от основного модуля?
Точно так же вы добавляете любую другую зависимость к вашему проекту maven. Добавляя идентификатор группы, идентификатор и версию артефакта до элемента <dependency>
Нужно ли мне делать это со всеми моими модулями и добавлять зависимость к pom.xml на моем основном модуле?
Если ваш основной модуль зависит от некоторого модуля A, а затем только, pom основного модуля должен содержать декларацию зависимости к модулю A. Вы делаете это для всех зависимостей ваш модуль.
Я не знаю, что вы подразумеваете под "большой работой при изменении кода на других модулях". Maven не имеет ничего общего с изменениями кода, он просто строит проекты так, как они выглядят в данный момент...
Какую наилучшую практику использовать во избежание проблем с компиляцией/установкой модулей в локальный репозиторий?
Любой проект, который вы вызываете mvn install
on, создается, и jar копируется в локальный репозиторий. Это все, что вам нужно сделать, чтобы получить банку в репо. Это также добавит все зависимые банки, если они доступны, в локальное репо.
Что касается лучших практик для проектов с несколькими модулями:
Если ваш родительский проект (тот, у которого есть модули внутри), имеет раздел <modules>
, в котором перечислены модули вашего приложения, а модули находятся в подкаталогах вашего родительского проекта, тогда вы просто mvn install
(или все, что хотите do) родительский проект, и это приведет к тому, что все модули будут построены в порядке, определенном объявленными зависимостями между ними. Это означает, что если ваш основной модуль имеет зависимость от модуля A, тогда модуль A будет создан до основного модуля. Таким образом, вы можете создавать и устанавливать все свои модули с помощью одной команды. С другой стороны, этот подход делает более плотную связь между модулями, которая не нужна в некоторых случаях, поэтому она зависит от вашего варианта использования, является ли это хорошим подходом или нет.