Как указать глобальное системное свойство для Java-приложений? - PullRequest
4 голосов
/ 17 ноября 2011

Я пытаюсь интегрировать Cobertura в нашу тестовую среду, чтобы иметь возможность собирать информацию о покрытии кода. Тесты выполняются из сценариев ant с использованием ANT junit tasks, и существует более 50 файлов сценариев ant (build.xml) с одним или несколькими определениями задач junit.

В соответствии с Документом Cobertura тестам джунтов необходимо указать путь к файлу данных покрытия кобертуры через вложенный элемент sysproperty в задаче джунитов. Для меня это означает, что мне нужно обновить все эти 50+ файлов, чтобы указать элемент sysproperty для задач junit, которые я планирую сделать в качестве последнего средства.

Я запускаю свои тесты в Linux (CentOS), и я хотел бы знать, есть ли способ указать глобальное системное свойство (-Dxxx=yyy), чтобы системное свойство было доступно всем Java-приложениям, работающим в системе.

-EDIT-
Тесты junit выполняются в разветвленной JVM. <junit fork="yes" ...

Ответы [ 2 ]

7 голосов
/ 17 ноября 2011

Вы можете попытаться установить ANT_OPTS переменную окружения.


ANT_OPTS - аргументы командной строки, которые должны быть переданы в JVM. Например, вы можете определить системные свойства или установить максимальный размер кучи Java здесь.


-EDIT-

Вы должны установить _JAVA_OPTIONS переменную окружения. Здесь и здесь есть некоторая информация об этом.

0 голосов
/ 18 ноября 2011

альтернативно установите переменную окружения и в вашем скрипте ant используйте:

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

Преимущество по сравнению с использованием ANT_OPTS (которое в первую очередь предназначено для внутренних настроек ant, например, параметров fe VM), заключается ввозможность для пользовательских настроек при использовании переменных среды пользователя, тогда как ANT_ARGS является "статическим" для всех скриптов ant.

...