Как хранить и проверять проекты, которые используют POM для всей организации? - PullRequest
0 голосов
/ 19 марта 2012

В Eclipse есть хорошая функция, которую я использую - извлекаю maven проекты из SCM - она ​​берет родительский pom многомодульного проекта, проверяет его, а затем извлекает все его модули на локальную рабочую станцию.Он очень прост в использовании и очень чистый.Потрясающе использовать с командой.Он хранит проекты в иерархическом порядке (что мне нравится) ... например, родительский pom является корнем, а все модули находятся в папках внутри родительского.

Однако теперь я собираюсь бытьдобавление еще одного элемента - POM для всей организации для настроек, которые редко меняются.Единственное, что меня смущает, так это то, как это изменит мою структуру для других (не связанных) проектов, которые используют общеорганизационные средства.Я не хочу перечислять другие супер-насосы в качестве «модулей» родительской компании, я просто хочу, чтобы это было очень просто.

Есть ли какой-нибудь способ получить мои многомодульные родительские проекты (один с POMупаковка) быть на самом деле модулем pom всей организации, не имея три уровня папок в каждом проекте?Например, могу ли я сохранить этот pom в своем архивном хранилище, чтобы его можно было решить с помощью зависимостей (в отличие от фактического наличия файла в корне моих проектов)?

Нужно ли мне изменять свои проекты изиерархическая структура для плоской структуры (все модули в том же каталоге, что и родительский), чтобы сделать эту работу, если бы мне действительно пришлось использовать pom для всей организации в качестве корня каждого многомодульного проекта, который у меня есть в моей компании?

Как люди, которые работают в организациях, которые используют эту структуру, обычно хранят и проверяют эти проекты?Что мне здесь не хватает?Мультимодульный проект (без родительского модуля) очень чистый и удобный.Добавление еще одного слоя (супер-супер-помпа) действительно выводит меня из себя!

Спасибо!

Ответы [ 2 ]

3 голосов
/ 19 марта 2012

Вам не нужно перечислять модули в pom организаций, чтобы иметь возможность ссылаться на него как на родительский POM и иметь возможность наследовать общие настройки. Если вы храните POM организаций в архиве, или в Nexus, или в Artifactory и т. Д., Вам просто нужно указать на репозиторий либо в файле settings.xml, либо внутри файлов pom.xml для каждого проекта. Вам не нужно добавлять зависимость от файла POM организаций, так как родительский элемент организует это для вас.

Вы пытались вставить пустой путь для родительской ссылки pom:

<relativePath></relativePath>

Это должно заставить maven искать родительский pom в репозитории, а не в файловой системе.

1 голос
/ 19 марта 2012

Помпа организации (я бы назвал это помпой компании) должна рассматриваться как обычный артефакт maven, что означает, что он должен быть в VCS, и, конечно, его нужно выпускать через плагин релиза maven.Кроме того, компания должна иметь только один репозиторий релизов и один для SNAPSHOT.У компании pom должен быть свой собственный репозиторий, потому что он идентифицируется по groupId, artifactId и версии, чтобы я мог просто быть помещен в репозиторий релизов и ссылаться на него как родительский из разных проектов по его координатам GAV (groupId, artifactId, version).Относительный путь обычно не нужен.Многомодульная сборка должна работать без относительного пути (помните о парадигме «Соглашение о конфигурации»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...