Определите конфигурацию подключаемого модуля Maven в родительском pom и обусловите его активацию в дочернем pom - PullRequest
0 голосов
/ 27 апреля 2018

Я создаю родительский 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 или нет?

...