我想为Maven构建传递一些系统变量。如果我使用mvn clean install -Dfirst.variable=value -Dsecond.variable=second.value
一切都很好。但pom.xml
中的此配置无效:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.3</version>
<executions>
<execution>
<id>tests</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<systemPropertyVariables>
<first.variable>${value}</first.variable>
<second.variable>${second.value}</second.variable>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
我尝试在没有<id/>
,<phase/>
和<goals>
的情况下使用此配置,但它没有帮助。插件是否有可能无法运行?甚至这些变量的硬编码值也不会通过。如果是这样,什么是可能的解决方案?提前谢谢。
答案 0 :(得分:9)
您无需创建<execution/>
。简单的方法:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<my.property>propertyValue</my.property>
</systemPropertyVariables>
</configuration>
</plugin>