Я создаю родительский pom, чтобы определить общую версию, которая будет использоваться для различных плагинов
<properties>
<maven-compiler-plugin.version>3.6.0</maven-compiler-plugin.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
Но я также хочу пойти дальше и определить некоторый профиль, который МОЖЕТ быть использован проектом, унаследованным от этого pom.
Например, я хочу предварительно определить конфигурацию для использования MapStructs
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<showWarnings>true</showWarnings>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct-jdk8.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<compilerArg>
-Amapstruct.defaultComponentModel=spring
</compilerArg>
<compilerArg>
-Amapstruct.unmappedTargetPolicy=ERROR
</compilerArg>
</compilerArgs>
</configuration>
</plugin>
Как бы я закодировал это в родительском pom, чтобы дочерние pom могли выбирать, использовать эту конкретную конфигурацию или нет, в зависимости от того, нужно ли им использовать mapstruct или нет?