我正在研究一个Maven项目,该项目要求在命令行上设置SystemPropertyVariable(maven-surefire-plugin)(-Dinstance = $ instance)并按如下所示在CAP中传递值
MVN测试-Dinstance = UAT
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<configuration>
<argLine>-Xmx512m -XX:MaxPermSize=256m</argLine>
<!-- Suite testng xml file to consider for test execution -->
<testFailureIgnore>true</testFailureIgnore>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
<systemPropertyVariables>
<instance>${instance}</instance>
<urltype>${urltype}</urltype>
</systemPropertyVariables>
</configuration>
</plugin>
</build>
我需要在编译之前或在编译阶段将该字符串转换为小写字母,以便可以在不同文件中使用它,甚至可以将其他jar文件的参数作为输入传递给同一项目中使用的
注意:正如我之前所说,它将作为参数传递给另一个jar文件,作为POM的输入。所以我想在该jar中使用之前先转换为POM中的小写字母,然后从它生成的数据文件中将其用于测试中。
请帮助我,谢谢
答案 0 :(得分:2)
您可以通过gmaven插件使用groovy来操纵属性:
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.6.2</version>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.5.3</version>
<type>pom</type>
<scope>runtime</scope>
</dependency>
</dependencies>
<executions>
<execution>
<id>add-dynamic-properties</id>
<phase>initialize</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<scripts>
<script>
<![CDATA[
instance = "${instance}"
lcInstance = instance.toLowerCase()
project.properties.setProperty('lcInstance', lcInstance)
]]>
</script>
</scripts>
</configuration>
</execution>
</executions>
</plugin>
$ {lcInstance}现在包含$ {instance}的小写副本