Переопределить конфигурацию плагина в профиле

У меня есть проект maven с несколькими профилями. В одном профиле у меня есть конфигурация плагина (jacoco-maven-plugin для обеспечения тестового покрытия):

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.0</version>
  <executions>
    <execution>
      <configuration>
        <rules>
          <rule>
            <limits>
              <limit>
                <counter>BRANCH</counter>
                <value>COVEREDRATIO</value>
                <minimum>0.50</minimum>
              </limit>
              <!-- many other limits here -->
            </limits>
          </rule>
        </rules>
      </configuration>
    </execution>
  </executions>
</plugin>

Но в Windows я хочу пропустить некоторые тесты и изменить лимиты покрытия, я пытаюсь сделать это так:

<profile>
  <id>windows</id>
  <activation>
    <os>
      <family>windows</family>
    </os>
  </activation>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration combine.children="append">
            <excludes>
              <exlude>com.example.SomeTest</exclude>
            </exclude>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.8.0</version>
        <executions>
          <execution>
            <configuration>
              <rules>
                <rule>
                  <limits>
                    <limit>
                      <counter>BRANCH</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>0.49</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
              <excludes>
                <exlude>com.example.SomeTest</exclude>
              </exclude>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</profile>

Этот тест com.exaple.SomeTest теперь не выполняется на windows и исключен из отчетов о покрытии, но jacoco-maven-plugin не изменился: он не влияет на конфигурацию плагина, я также пробовал использовать <limit combine.children="override"> и <limit combine.children="append"> вместо <limit>.

Как правильно переопределить только одно ограничение (COVEREDRATIO) в конфигурации плагина для профиля?


person Kirill    schedule 20.06.2018    source источник


Ответы (1)


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

Я считаю, что вам нужно иметь конфигурацию, которую вы хотите переопределить на уровне плагина.

person Dio    schedule 31.01.2019