2013-10-16 17 views
0

我们有我们的POM定义maven-surefire-plugin如下:Maven的神火只承认在命令行上“forkMode”

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.14</version> 
    <configuration> 
     <reuseForks>false</reuseForks> 
     <forkCount>1</forkCount> 
     <argLine>-Xms64m -Xmx256m</argLine> 
     <includes> 
      <include>**/*Test.java</include> 
     </includes> 
    </configuration> 
</plugin> 

然而,我们的Java测试(其中包括一些并行测试和静态单身)只有正常时运行我们运行测试阶段/建造使用:

mvn test -DforkMode=always

奇怪的是,即使我们改变我们的<configuration>使用(而不是较新的选项):

<forkMode>always</forkMode>

并运行:

mvn test

它会失败。不过,如果我们运行:

mvn test -DforkMode=always

它会通过。如果我们在命令行中明确提供了forkMode,则仍然是,而不是更新的选项。我们已经尝试过使用surefire插件的多个版本,以达到同样的效果。

是否有可能覆盖此属性的任何位置,或XML配置未正确使用的已知问题?

回答

2

新人的错误。我正在使用的配置被列在一个单独的<profile>未被执行的块中。与配置文件:

<activeByDefault>true</activeByDefault>

没有包括在自己所有的神火配置(所以没有在搜索中显示),并使用继承的值,这解释了为什么命令行系统属性能够影响其行为。