Не удается добавить системные свойства из конфигурации профиля

У меня есть конфигурация сборки для отказоустойчивого плагина maven, который включает systemPropertyVariables:

<build>
  <plugins>
    <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.19.1</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <systemPropertyVariables>
            <buildDirectory>${project.build.directory}</buildDirectory>
          </systemPropertyVariables>
        </configuration>
      </plugin>
  </plugins>
</build>

Также у меня есть профиль, который может добавить несколько свойств к тому же плагину через pluginManagement:

<profile>
  <id>test</id>
  <activation>
    <property>
      <name>test.host</name>
    </property>
  </activation>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <configuration>
            <systemPropertyVariables>
              <TEST_HOST>test.host</TEST_HOST>
            </systemPropertyVariables>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</profile>

Но я не могу прочитать свойства из этого профиля. Работает нормально, если я удалю systemPropertyVariables в разделе конфигурации сборки плагина и сохраните его в конфигурации профиля управления плагином. Кажется, мне нужно объединить эти свойства при совместном использовании, поэтому я попытался добавить combine.children="append" а также combine.self="append" в configuration плагина, но это не помогло.

0 ответов

Мне удалось это сделать, добавив лишнюю помпу между неприкасаемыми (илиpariah) родительский и текущий child, Я называю этот новый средний помпон midboy знак равно

Так midboy имеет только следующее отличие от pariah;

<plugin>
    <artifactId>maven-failsafe-plugin</artifactId>
    <groupId>org.apache.maven.plugins</groupId>
    <version>3.0.0-M3</version>
    <inherited>false</inherited>
</plugin>

И этот помпон становится новым родительским помпом child, в то время как он использует оригинал pariah pom в качестве своего родителя.

child --- [наследует]---> midboy --- [наследует]---> pariah

С inherited:false Я по сути отключил отказоустойчивый плагин, передаваемый в childи нарушение его конфигурации на основе профиля, добавление к его собственному локальному отказоустойчивому плагину и конфигурации. и это отлично работает!

На этот раз без пропуска теста!

Running com.test.so51905256.PropITCase
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.031 s - in com.test.so51905256.PropITCase

ps не забудьте добавить какой-нибудь <activation> для test профиль

Другие вопросы по тегам