如何将Hudson的env.EXECUTOR_NUMBER传递给log4j属性和Java的System.getProperty

时间:2011-08-11 10:20:29

标签: java properties hudson log4j environment-variables

我的Hudson作业调用单个XML数据库集合和单个日志文件。 E.g。

  • /分贝/项目
  • $ {的user.home} /logs/logging.log

我想在两个路径中注入Hudson的env.EXECUTOR_NUMBER以避免并发执行冲突。 E.g。

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

我发现了以下内容:

现在我已经在构建目标中指定了Hudson的EXECUTOR_NUMBER变量,我如何将其用作Log4J和Java的System.getProperties()类使用的系统属性?

1 个答案:

答案 0 :(得分:1)

您可以使用-D语法将系统属性传递给任何Java进程。

mvn clean install -DEXECUTOR_NUMBER={$EXECUTOR_NUMBER}

对于分叉运行中的测试类,您还必须配置surefire插件以将系统属性传递给分叉的vm:

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