Может ли профиль maven наследовать от другого профиля maven?
У меня два профиля, которые почти идентичны. Вместо того, чтобы дублировать конфигурацию в каждом, я хотел бы, чтобы один профиль "наследовал" от другого, но я не вижу очевидного способа сделать это, используя maven 3.
Возможно ли наследование профиля в maven?
Ответы
Ответ 1
Нет, профили не могут быть унаследованы.
Тем не менее, вы можете иметь несколько активных профилей, которые могут позволить вам выполнить примерно одно и то же, разложив общие элементы в двух профилях в третий профиль, который вы активируете, когда вы активируете один из двух других профилей.
Ответ 2
Строго говоря, профили не наследуются в том, что профили, заданные в родительском помпе, недоступны в детских помпах, согласно документации maven. ОДНАКО, свойства и плагины сборки (а не pluginManagement), которые указаны в родительских позах, могут активироваться и, следовательно, изменять среду сборки для детских помес.
Например, если у меня есть родительский pom A, который имеет следующий раздел профилей:
</profiles>
<profile>
<id>integrationTest</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<parallel>none</parallel>
<excludes>
<exclude>**/*Test.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<includes
<include>**/*IT.java</include>
</includes>
<!-- need to exclude nothing as it is possible that some by default some tests are excluded and we need to override that -->
<excludes>
<exclude>none</exclude>
</excludes>
<parallel>none</parallel>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
И затем дочерний pom B, у которого нет защищенного плагина, настроенного в сборке по умолчанию, но наследуемого от A pom через родительский тег, и затем я запускаю 'mvn clean install -P integrationTest' из каталога дочернего pom, он будет введите информацию плагина, указанную в A.