Как я могу передать env.EXECUTOR_NUMBER Гудзона в свойства log4j и Java System.getProperty - PullRequest
2 голосов
/ 11 августа 2011

Мое задание Hudson вызывает одну коллекцию баз данных XML и один файл журнала. Э.Г.

  • / дб / проект
  • $ {user.home} /logs/logging.log

Я бы хотел ввести env.EXECUTOR_NUMBER Хадсона в оба пути, чтобы избежать одновременного столкновения при выполнении. Э.Г.

  • / db / project {$ EXECUTOR_NUMBER}
  • {$ user.home} / logs {$ EXECUTOR_NUMBER} / logging.log

Я обнаружил следующее:

Теперь, когда у меня есть переменная EXECUTOR_NUMBER Хадсона, указанная в цели сборки, как я могу использовать ее как системное свойство для использования Log4J и Java-классом System.getProperties ()?

1 Ответ

1 голос
/ 11 августа 2011

Системные свойства можно передать любому процессу Java с использованием синтаксиса -D.

mvn clean install -DEXECUTOR_NUMBER={$EXECUTOR_NUMBER}

Для тестового класса в разветвленном прогоне вам дополнительно потребуется настроить плагин surefire для передачи системного свойствана разветвленную вм:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.9</version>
    <configuration>
      <systemPropertyVariables>
        <EXECUTOR_NUMBER>${EXECUTOR_NUMBER}</EXECUTOR_NUMBER>
      </systemPropertyVariables>
    </configuration>
  </plugin>
...