Как отключить этапы установки и развертывания Maven с использованием профилей? - PullRequest
2 голосов
/ 12 июля 2011

Мой проект Maven содержит 3 разных профиля, dev, stage и prod, которые содержат разные настройки конфигурации.Я хотел бы сделать так, чтобы фазы установки и развертывания не могли быть выполнены (или выполнены, но ничего не делать), если активный профиль не является prod, чтобы сохранить сборки dev и stage из репозитория.Есть ли способ сделать это?

Я предполагаю, что это включает добавление к профилям dev и stage и ручное связывание его с фазой "none" или чем-то в этом роде.

Ответы [ 2 ]

1 голос
/ 12 июля 2011

Если это то, что вы действительно хотите сделать, просто запустите фазу «package» в dev и staging, и в вашем файле настроек maven указанный пользователь не должен иметь прав на запись в репозиторий.

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

0 голосов
/ 12 июля 2011

Независимо от того, как вы хотите сделать, это лучшая идея, вы можете использовать Maven Enforcer Plugin , чтобы проверить, что для свойства profile установлено значениезначение вашего профиля «prod».Плагин по умолчанию привязывается к фазе validate, поэтому вам необходимо привязать его к фазе package, иначе будет использоваться только профиль 'prod'.

Конкретный рецепт, который я бы использовал дляthis:

Существует встроенное правило под названием requireProperty, которое можно использовать для создания утверждений о свойствах и их значениях.Вы можете установить свойство из своего профиля prod, а затем (вне любого профиля) настроить плагин принудительного применения, чтобы проверить, установлено ли указанное свойство на ожидаемое вами значение.Однако это хоккей.

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

...