如何使用系统属性设置Maven POM文件以在Java中输入参数?

时间:2014-06-25 14:38:38

标签: java maven maven-surefire-plugin

我正在尝试从我在maven POM文件中设置的系统属性中获取输入参数。

我的POM看起来像

<systemProperties>
   <property>
      <name>number 1</name>
      <value>${number 1}</value>
   </property>
   <property>
      <name>number 2</name>
      <value>${number 2}</value>
   </property>
</systemProperties>

当我进行测试时,这将是我的maven目标

clean install -Dtest=RunTest test -Dnumber1=2 -Dnumber1

现在我如何编写我的java测试代码以从系统属性中获取number1和number2?

public void addNumbers () {
    System.out.println(number1+number2);

}

**我是否需要在项目中使用surefire插件才能使其正常工作?

2 个答案:

答案 0 :(得分:2)

如果要将系统属性传递给由surefire插件调用的测试用例,则需要配置surefire插件以传递属性,如

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <systemPropertyVariables>
            <number1>1</number1>
            <number2>2</number2>

          </systemPropertyVariables>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

答案 1 :(得分:0)

在pom.xml中我们可以像这样配置: -

<project>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.9</version>
            <configuration>
                <argLine>-DaddProp=true</argLine>
                <argLine>-DmultProp=false</argLine>
            </configuration>
        </plugin>
    </plugins>
</build>

在获取系统属性的java代码中: -

System.getProperty("addProp");
System.getProperty("multProp");