2013-03-22 3 views
0

Каков наилучший способ управления версиями зависимостей ?.Управление версиями зависимостей

Как правило, я бы создал супер POM (Not Parent POM), и я бы объявил все мои зависимости в супер POM. Чтобы все мои проекты могли ссылаться на этот POM для зависимостей. Преимущество заключается в том, что все мои зависимости контролируются из центрального ПОМ.

Но если мы разрабатываем некоторые продукты, продаваемые разным клиентам год за годом, а также версии зависимостей обновляются год за годом. Как я буду отслеживать мои версии зависимостей продуктов, которые я выпустил для каждого клиента? .. Я не хочу постоянно обновлять свой POM каждый раз, когда необходимо обновить версию зависимостей.

Так что я думал о сохранении версии зависимостей в моих настройках xml, поскольку свойства и параметры могут обновляться или обновляться в версии.

Я опыт в Maven, но не эксперт. Любые хорошие предложения? ... Заранее спасибо Иосиф

+0

Оформить заказ плагина версий. http://mojo.codehaus.org/versions-maven-plugin/ –

ответ

2
  • Поместите все свои версии в dependencyManagement родительского П. (как вы это делаете сейчас, поэтому существует зависимость зависимости)
  • Чтобы отслеживать старый выпуск: используйте тег в SCM.
  • settings.xml не входит в проект! он должен содержать свойства и данные об окружающей среде (т. е. не проект).
  • не смешивать зависимости разных проектов. Это кажется очень плохой идеей (это означает, что если вы обмениваете широко используемую зависимость (например, спящий режим, например) для одного конкретного клиента: она будет обновлена ​​для всех ваших проектов. Поэтому вам придется повторно проверить все ваши проекты против новая версия спящего режима)

И только небольшой вопрос, какая разница между версиями ваших настроек.xml и версией родительского помпа?

+0

Наш продукт состоит из нескольких функциональных блоков. Не всем клиентам могут потребоваться все функциональные блоки. Вот почему версия зависимости jar должна быть внешней. Некоторые функциональные блоки и, следовательно, база кода могут вообще не меняться для следующего клиента. Поэтому я хочу найти правильный баланс. Ответьте на свой вопрос: Нет разницы –

+0

Скажем, мы выпустим наш продукт для клиента 1 сегодня и для клиента 2 завтра. День после того, как я должен выпустить патч для клиента1. Для клиента 2 следующий выпуск будет через год с несколькими новыми строительными блоками. Возможно, мне также придется выпустить другие блоки, которые я выпустил ранее, поскольку мне нужно обновить версию для новых блоков. –

+0

Я могу изменить свой POM каждый раз, как вы упомянули. если база кода не изменяется, я не хочу обновлять POM. Я хочу заговорить о том, чтобы версии каждого клиента были отдельно. –

Смежные вопросы