2010-12-15 2 views
2

Ive получил проект ив Maven унаследовал, который не имеет настроек профилей, однако мне нужно установить различные различные профили для DEV/INT/постановкой и т.д.Могут ли профили Maven быть определены в разных файлах?

Из того, что ив читал я могу положить в профильных элементах в основной РОМ, но есть много элементов конфигурации зависимостей поэтому этот файл стал бы огромным, поэтому мне было интересно, есть ли способ сказать главный POM, чтобы ссылаться на различные файлы, так что это будет что-то вроде:

  • pom.xml
  • DevProfile.xml
  • IntProfile.xml
  • StaProfile.xml

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

ответ

3

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

Мне пришлось включать такие вещи, как родные библиотеки в качестве зависимостей, и успешно использовали профили, но им пришлось использовать POM. (ПРИМЕЧАНИЕ, хотя это одна из единственных причин, по которым я могу думать, что нужно включать депо в профиле, как правило, вы не должны, и, если возможно, вам захочется избежать этого, потому что те части сборки становятся недетерминированными .)

Чтобы сократить размер POM, вы можете использовать наследование. Вы можете создавать отдельные POM для каждой машины, в которой используется общий родитель, у которого есть все обычные вещи. Однако будьте осторожны, наследование может повлиять на то, как активируются профили. Используйте плагин Help, чтобы увидеть «эффективный POM» (и/или эффективные настройки), чтобы устранить эту проблему.

+0

Дает вам ответ, кажется, что я не могу делать то, что хотел, но это не конец света. Спасибо за ответ! – Grofit 2011-01-31 15:09:28

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