如何为java应用程序指定全局系统属性?

时间:2011-11-16 20:43:12

标签: java ant junit cobertura

我正在尝试将Cobertura集成到我们的测试环境中,以便能够捕获代码覆盖率信息。测试使用ANT junit tasks从ant脚本运行,并且有超过50个ant脚本文件(build.xml),其中包含一个或多个junit任务定义。

根据Cobertura doc,junit测试必须通过junit任务的sysproperty嵌套元素给出cobertura coverage数据文件的路径。对我来说意味着我需要更新所有这50多个文件,为junit任务指定一个sysproperty元素,我打算将其作为最后的手段。

我正在Linux (CentOS)中运行我的测试,我想知道是否有办法指定全局系统属性(-Dxxx=yyy),以便系统属性可供所有运行的java应用程序使用在系统中。

CNC中
junit测试在分叉的JVM中运行。 <junit fork="yes" ...

2 个答案:

答案 0 :(得分:7)

您可以尝试设置ANT_OPTS环境变量。


ANT_OPTS - 应传递给JVM的命令行参数。例如,您可以在此处定义系统属性或设置最大Java堆大小。


- 编辑 -

您必须设置_JAVA_OPTIONS环境变量。 Herehere有一些信息。

答案 1 :(得分:0)

或者设置环境变量并在你的蚂蚁脚本中使用:

<property environment="env"/>
<echo>${env.yourEnvVariable}</echo>
...

使用ANT_OPTS(主要用于ant内部设置,如fe VM参数..)的优势是,如果使用用户环境变量,则可以进行用户特定设置,而ANT_ARGS对于所有ant脚本都是“静态”。