Можно ли объединить конфигурацию плагина maven из родительского в дочерний проект - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть 3 проекта maven, родитель, середина и дочерний проект:

Parent-->Middle-->Child

Тогда у меня есть 2 зависимости процессора аннотации.

Родительский проект определяет maven-compiler-plugin как управляемый плагин и настраивает процессор аннотаций 1 на annotationProcessorPath. Промежуточный проект аналогичным образом настраивает процессор аннотаций 2 на annotationProcessorPath.

Parent-->Middle-->Child
   |        |        
  AP1      AP2      

Сбой компиляции дочернего проекта из-за отсутствия в нем процессора аннотаций 1, поскольку его конфигурация происходит из промежуточного проекта. Простой ответ - просто добавить процессор1 к средней конфигурации плагина.

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

Это от родителя пом:

<groupId>myproject</groupId>
<artifactId>base</artifactId>
<version>1.2-SNAPSHOT</version>
<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>myproject/groupId>
                            <artifactId>annotation1</artifactId>
                            <version>1.0</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

А из среднего пом:

<parent>
    <groupId>myproject</groupId>
    <artifactId>base</artifactId>
    <version>1.2-SNAPSHOT</version>
 </parent>
 <artifactId>middle</artifactId>
 <version>1.1-SNAPSHOT</version>
 <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>myproject/groupId>
                            <artifactId>annotation2</artifactId>
                            <version>1.0</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>

Может кто-нибудь показать мне технику для разных уровней иерархии (родительская, средняя), чтобы добавить конфигурацию к плагину так, чтобы у ребенка была совокупная конфигурация от обоих

1 Ответ

0 голосов
/ 07 сентября 2018

Это выглядит следующим образом:

Root-проект - содержит раздел pluginManagement с плагином X и его конфигурацией по умолчанию

Дочерний проект - содержит плагин X раздела; любая конфигурация, добавленная в этом разделе, добавляется к конфигурации корня по умолчанию (или перезаписывается, если переопределены те же аргументы).

В вашем случае root должен содержать pluginManagement with annotation1; middle должен содержать плагин с аннотацией2 (это будет добавлено к аннотации по умолчанию1); child будет наследовать от middle конфигурацию плагина с обоими аннотациями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...