#java #maven-2 #maven
#java #maven-2 #maven
Вопрос:
У меня есть профиль, определенный в родительском pom.xml
и активированный свойством. В дочернем модуле мне нужно деактивировать его. Как это можно сделать (это Maven 3)?
ps. Насколько я знаю, это невозможно сделать юридически (MNG-4565, MNG-5083), но каков возможный обходной путь?
Ответ №1:
Это зависит. Дочерние pom не должны запрещать поведение родительского pom (это похоже на LSP для процесса сборки). Возможно, было бы неплохо определить профиль в родительском pom, но активировать его только в дочерних pom, где это действительно необходимо.
Если вы не можете этого сделать, вы могли бы активировать профиль в родительском pom с помощью свойства с точным значением:
<profiles>
<profile>
<activation>
<property>
<name>environment</name>
<value>test</value>
</property>
</activation>
</profile>
</profiles>
а затем переопределите значение свойства в дочернем pom.
Комментарии:
1. Переопределение свойства в дочернем модуле pom.xml не будет иметь никакого эффекта, поскольку Maven создает эффективный pom перед чтением его свойств.