(Maven + Eclipse) Как каждый разработчик обрабатывает банки локально? - PullRequest
2 голосов
/ 13 января 2012

Я новичок в Maven и Continuous Integration, поэтому извините мои тривиальные вопросы ниже В нашем проекте мы намерены внедрить непрерывную интеграцию путем выполнения ежедневных автоматических сборок на нашем сервере интеграции разработки с использованием Maven и hudson

.

в наших проектах мы использовали возврат всех jar-файлов (внутренних, коммерческих и сторонних) в SCM в рамках одного отдельного проекта и заставляли веб-проект зависеть от этого проекта, чтобы проект мог компилироваться в eclipse, а затем экспортироваться EAR

У меня вопрос: как каждый разработчик локально на своей машине будет компилировать проект сейчас? Должны ли мы вообще удалить проект jars из scm? Если да: означает ли это, что каждый разработчик должен обращаться к репозиторию maven на предприятии из затмения, чтобы проект мог компилироваться? и в этом случае будут чрезвычайные накладные расходы СЗ ?? Если нет: может возникнуть конфликт между jar-файлами на scm и jar-файлами в хранилище maven

еще один вопрос, связанный с вышеупомянутым, будет ли у каждого разработчика свой собственный локальный репозиторий maven на своей машине? И последний вопрос: должен ли каждый разработчик компилировать код, используя maven (через M2Eclipse) или используя компилятор eclipse, как обычно?

спасибо:)

Ответы [ 2 ]

2 голосов
/ 13 января 2012

То, что мы делаем, и я считаю, что это довольно распространенное явление, это

  • У нас есть собственная установка менеджера хранилища, например Nexus , установленная на некотором компьютере вИнтранет, доступный для всех разработчиков для использования
  • Jars, не будет находиться в SCM, но будет храниться в Nexus или его эквиваленте.Общим условием является наличие одного репозитория для внешних зависимостей, одного для внутренних сборок моментальных снимков и одного для внутренних сборок релизов (для проекта).Мы определили центральный репозиторий Maven, а также внутренние репозитории в конфигурации Maven, сохраняя артефакты в соответствующих внутренних репозиториях (внешний, внутренний выпуск или внутренний снимок) и подбирая их оттуда, но имея центральное репо в качестве резервной копии длястандартные плагины.
  • Ссылки на репозиторий (определения, URL) находятся либо в файле настроек Maven, либо в файле pom.xml.Индивидуальный разработчик не должен ничего делать, он просто использует эти файлы.pom.xml будет в SCM, файл настроек может быть там или нет.
  • Maven также использует локальный кеш при загрузке файлов, поэтому они загружаются только один раз для каждой версии / машины, что должно сохранять NWнакладные расходы терпимы.Репозиторий Intranet также частично используется для сокращения издержек внешней сети.
  • Плагин релиза Maven часто используется для обработки обновлений внутреннего снимка и репозитория внутреннего выпуска
  • У каждого разработчика естьлокальный кеш репозитория на его машине.Это стандартная функция Maven.Eclipse может ссылаться на эти же файлы.
  • Код можно скомпилировать с помощью плагина eclipse-maven (из которых M2E является наиболее распространенным), используя Maven в командной строке или затем используя Maven для генерации обычного Eclipse.файлы проекта, а затем обычно с Eclipse.Для этого мы используем командную строку и M2E + Eclipse.
  • SCM будет для исходного кода, репозитории для двоичных файлов (включая .jars)
2 голосов
/ 13 января 2012

Вы настраиваете все зависимости в pom.xml для каждого проекта.Затем Maven загружает все необходимые файлы из вашего корпоративного хранилища.Вам больше не нужен ваш проект SCM, и я бы удалил его.Я не думаю, что существует большая нагрузка на сеть, потому что Maven загружает банки только тогда, когда они нужны.После этого они находятся в локальном репозитории (который каждый разработчик имеет на своем компьютере), и только обновления будут загружаться после первого раза.

Если вы используете M2Eclipse, то стандартный компилятор Eclipse будет расширенСборщики Maven, так что вы можете использовать все функции компиляции Eclipse.

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