我的pom.xml中的部分代码如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>${suite.xml}</suiteXmlFile>
</suiteXmlFiles>
<properties>
<property>
<name>usedefaultlisteners</name>
<value>false</value>
</property>
<property>
<name>listener</name>
<value>org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter
</value>
</property>
</properties>
<testFailureIgnore>true</testFailureIgnore>
<systemProperties>
<property>
<name>org.uncommons.reportng.title</name>
<value>${title}</value>
</property>
</systemProperties>
<argLine>-Xms128m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m
-XX:+UseConcMarkSweepGC
</argLine>
</configuration>
</plugin>
我从我的jenkins工作发送-Dtitle
,它工作正常。同样明智的我想要更改标记<testFailureIgnore>true</testFailureIgnore>
中的值。但问题是:我不想更改默认值。我只想在用户从jenkins提供“false”值的情况下参数化。如果用户不提供任何内容,那么它应该是“true”。
答案 0 :(得分:0)
在pom中创建一个单独的配置文件,您可以在其中提供不同的值。 pom中的插件定义将包含默认值。
因此,如果您运行简单的maven命令:mvn install
,它将使用默认值
如果您使用mvn -Pprofile install
的配置文件运行,那么它将使用配置文件中指定的值。
答案 1 :(得分:0)
<maven.test.failure.ignore>true</maven.test.failure.ignore>
标记下添加一个属性<properties>
。<testFailureIgnore>${maven.test.failure.ignore}</testFailureIgnore>
。如果是&#34; false&#34;你需要传递一个额外的参数-Dmaven.test.failure.ignore=false
答案 2 :(得分:0)
很容易。首先,您必须为您的工作添加一个shell命令。在此命令中,您可以使sed命令替换另一行。
示例:
sed -i's / <maven.test.failure.ignore>true</maven.test.failure.ignore>
/ <maven.test.failure.ignore>false</maven.test.failure.ignore>
/ g'pom.xml