Не удается добавить системные свойства из конфигурации профиля
У меня есть конфигурация сборки для отказоустойчивого плагина 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
профиль