Несколько тегов конфигурации для плагинов Maven - PullRequest
1 голос
/ 10 мая 2019

Согласно справочнику maven POM , мы можем определить несколько <configuration> тегов для плагинов maven.

        <plugin>
            <groupId/>
            <artifactId/>
            <version/>
            <extensions/>
            <executions>
                <execution>
                <id/>
                <phase/>
                <goals/>
                <inherited/>
                <configuration/>

            </execution>

        </executions>
        <dependencies>
            ...
        </dependencies>
        <goals/>
        <inherited/>
        <configuration/>
    </plugin>

Если вы видите, что один <configuration> находится внутри тега <execution>, а другой снаружи. Давайте возьмем пример, чтобы увидеть его более четко:

Пример:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.18.1</version>
    <executions>
      <execution>
        <id>default-test</id>
        <phase>test</phase>
        <goals>
          <goal>test</goal>
        </goals>
        <configuration>
          <includes>
            <include>**/*Tests.java</include>
            <include>**/*Test.java</include>
          </includes>
          <excludes>
            <exclude>**/Abstract*.java</exclude>
          </excludes>
        </configuration>
      </execution>
    </executions>

    <configuration>
      <includes>
        <include>**/*Tests.java</include>
        <include>**/*Test.java</include>
      </includes>
      <excludes>
        <exclude>**/Abstract*.java</exclude>
      </excludes>
    </configuration>

  </plugin>

Рассмотрим следующий верный плагин. Имеет 2 <configuration>. Один внутри <execution>, а другой снаружи.

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

1 Ответ

1 голос
/ 10 мая 2019

Одна - глобальная конфигурация, другая - конфигурация, специфичная для выполнения

Глобал применяется всякий раз, когда ничто иное не отменяет его. Когда вы называете цель плагина (как в вашем примере), он не относится к какому-либо конкретному выполнению, поэтому он будет использовать глобальную конфигурацию

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

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