2010-02-19 4 views
4

Я ищу способ создания метапрофилей, которые активируют подпрофили в Maven. Давайте рассмотрим очень конкретный пример. У меня есть следующие профили:Мета-профили в Maven

  • "сервера JBoss"
  • "сервер-кот"
  • "базы данных HSQL"
  • "база-оракул"

Чтобы построить проекта, вы должны выбрать один профиль для сервера и один для базы данных. Я хочу создать два "мета-профили":

  • "DEV" => "сервер-кот", "база-HSQL"
  • => "прод" "сервера JBoss", "database- оракул»

Первая мысль, которая приходит, чтобы активировать подпрофили по свойству:

<profile> 
    <id>database-oracle</id> 
    <activation> 
    <property> 
     <name>prod</name> 
    </property> 
    </activation> 
</profile> 

Но этот путь, я не могу разделить подпрофили между мета-профили. Например, я хочу, чтобы мой профиль «database-oracle» активировался как мета-профилями «pre-prod», так и «prod».

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

Идеальная ситуация для меня было бы иметь их экстернализированы во внешних файлах свойств, но один вопрос в то время;)

+0

На самом деле этот вопрос действительно звучит как обман http://stackoverflow.com/questions/2246033/why-cant-i-activate-a-maven2-profile-from-another-profile. Пожалуйста, подтвердите, считаете ли вы, что это другой вопрос. –

+0

Да, я просмотрел эти вопросы, но я думаю, что в моей ситуации может быть какой-то трюк. Мои подпрофили - это всего лишь набор свойств, которые я хочу объединить. Может быть, название моего вопроса немного амбициозное;) – nicoulaj

ответ

6

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

+0

В этом случае есть ли трюк, чтобы сделать профиль активированным несколькими свойствами? Я вижу, что вы можете использовать диапазоны для версии jdk, например, может быть какой-то скрытый синтаксис, например pord, pre-prod? – nicoulaj

2

Вы пробовали решение, используя плагин maven-properties-plugin? Обсуждаются некоторые возможности in this question и here.

+0

Да, я попробовал, это выглядело как хорошее решение. К сожалению, я не смог заставить его работать правильно: я загрузил файлы свойств в POM, он хорошо работал для фильтрации ресурсов, но не для их непосредственного использования в POM. – nicoulaj

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