2015-09-22 2 views
-1

У меня есть несколько проектов, в которых я использую профиль maven для адаптации значений конфигурации для разных сред: разработка, тестирование, предварительная подготовка, ...Профили Maven для разных сред - плохая практика?

Я знаю, что использование maven для создания разных артефактов из того же кода является плохим практика. Вместо этого лучше иметь проект с несколькими модулями, каждый из которых имеет определенную конфигурацию.

Я думаю, что это нормально, если вы хотите изменить код Java, например, когда вы хотите внедрить различные реализации компонента (по одному на каждого клиента). Но в моем случае это только вопрос конфигурации свойств.

  • Действительно ли это плохая практика?
  • Стоит ли мне менять конфигурацию проектов из профилей в модули?
  • Какова реальная выгода?
+2

Действительно ли это плохая практика? - Нет, это то, для чего нужны профили. – Stefan

+1

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

+0

Я лично не могу представить себе мир, в котором вы не переходите от DEV до TEST к PROD с теми же двоичными файлами. Так что да, я думаю, что это довольно плохая практика для чего угодно, кроме конфигурации, особенно для управления вашими зависимостями вверх по течению. –

ответ

2

В дополнении к тому, что @khmarbaise сказал в комментариях, профили должны использоваться только для изменения пути построены артефакты, не самих артефактов.

Примеров хороших использований профиля я могу думать:

  • с использованием различных сделок РЕПО в зависимости от сборки машины
  • опции компилятора в зависимости от сборки машины или построить деградированный DEV/TEST версия
  • работать или нет некоторых трудоемких тесты
  • конфигурации для интеграции испытаний (что порт, который дб использовать, ...)
  • ...

Клиентские и клиентские варианты и варианты инъекций всегда должны быть в конфигурации.

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

+0

Спасибо, это очень разъясняет – malaguna

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