Нам нужно проверить сборку java с языками, установленными на разные значения. Я могу вручную (то есть через export LANG=en_DK.UTF-8
и export LANG=en_DK
) проверить, что модульные тесты, выполняемые с помощью скрипта сборки ant, ведут себя по-разному, но мне нужно установить переменную среды из муравья. Я попытался установить его с помощью этих методов (с набором оболочки $LANG
к en_DK.UTF-8
):Ant игнорирует попытку переопределить переменную среды LANG
- с использованием
-D
в командной строке:ant -DLANG=en_DK
- используя
build.properties
файл с линиейLANG=en_DK
в нем - с помощью после выступлений в файле build.xml (извините за форматирование, я не могу получить SO, чтобы отобразить его в противном случае):
:
<property environment="ANTENV"/>
<property name="ANTENV.LANG" value="en_DK"/>
Использование любого из трех возможностей, и при запуске с -debug
, муравей сообщает, что:
Override ignored for property "LANG"
Что я могу сделать, чтобы установить переменную окружения LANG
внутри муравья?
Но мне не нужно хранить значение; Мне нужно установить его так, чтобы JVM при выполнении тестов мог использовать либо значение en_DK, либо en_DK.UTF-8 как LANG. Я признаю, что свойства ant неизменяемы, я просто хотел бы вмешиваться в переменные окружения изнутри ant ... – Steen
@Steen: «Я просто хотел бы вмешиваться в переменные окружения изнутри ant»: это то, что '< Свойство name = "MY.LANG" value = "$ {env.LANG}" /> 'позволяет: сделать это, если вы можете повторно использовать его в других задачах. То, что вы не можете сделать, это изменить что-то, установленное вне сеанса Ant (например, значение среды). – VonC
ОК, это соответствует как ответ на мой вопрос. Не тот, который я действительно хотел услышать, но это моя проблема. Я экспериментировал с завершением вызова build-файла в shell-скрипт, который устанавливает среду LANG перед вызовом ant. Я отлично работаю, но чувствую себя как хак;) – Steen