Как настроить файл Maven POM со свойствами системы для ввода параметров в Java?

Я пытаюсь получить входные параметры из системных свойств, которые я установил в файле 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, чтобы получить номер 1 и номер 2 из системных свойств?

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

}

** Нужно ли мне использовать плагин surefire в моем проекте, чтобы он работал?


person SamK    schedule 25.06.2014    source источник
comment
System.getProperty() звучит уместно.   -  person Robby Cornelissen    schedule 25.06.2014


Ответы (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>
person jmj    schedule 25.06.2014
comment
Спасибо за быстрый ответ. Могу ли я получить переменную number1 с помощью String param1 = System.getProperty(number1); правильно? - person SamK; 25.06.2014

В 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>

In java code for getting system properties:-

System.getProperty("addProp");
System.getProperty("multProp");
person zytham    schedule 16.10.2015