Как установить переменную среды пути из ant script
Как установить переменную среды пути из ant script
Ответ 1
Это для задачи <exec>
?
Вы можете установить переменные среды при выполнении задачи <exec>
:
<exec executable="${my.command}">
<env key="foo" value="bar"/>
<arg line="some value"/>
</exec>
Вы можете использовать <property environment="env"/>
для расширения пути:
<property environment="env"/>
<exec executable="${my.command}">
<env key="PATH" value="${env.PATH}:${my.directory}"/>
</exec>
Если это для какой-то пользовательской задачи, для которой требуется переменная среды, но не позволяет вам установить переменную окружения в задаче, если она не установлена, вы можете попробовать установить ее в:
<property environment="env"/>
<property name="env.foo" value="bar!bar"/>
Этот может установить переменную среды с именем foo
в значение bar!bar!
. Я помню кое-что об этом, но не смог заставить его работать.
Другое, что вы можете сделать, это иметь один ant script выполнить другой и установить первый ant script значение среды. Я сделал это, когда мне пришлось установить ANT_OPT
.
Ответ 2
В ant свойства неизменяемы, поэтому предложение Дэвида выше:
<property name="env.foo" value="bar!bar"/>
не будет работать.
Но переменные изменяемы, поэтому это работает:
<variable name="env.foo" value="bar!bar"/>
Это выполняет задание, но похоже на подлый трюк.
Итак, к вашему конкретному вопросу, попробуйте
<variable name="env.PATH" value="some:custom:value"/>
Ответ 3
Вы можете использовать команду setx для установки переменных среды.
Для справки команды setx обратитесь http://ss64.com/nt/setx.html
<exec executable="setx.exe">
<arg line="Path C:\jdk1.5.0_12\bin"/>
<arg line="/m"/>
</exec>
Ответ 4
Я нашел, что это работает, цитируя значение переменной
<exec executable="setx">
<arg line="Path "${env.Path};c:\testPath"" />
<arg line="/m" />
</exec>
Ответ 5
Чтобы установить переменные среды через Ant, попробуйте вызвать задачу exec и задайте значения командной строки. Я, кстати, не пробовал это, но он должен работать.
Ответ 6
так как у меня недостаточно репутации, чтобы комментировать предложения <variable ...
мой комментарий как ответ...: -/
В (более новый) ant -contrib (дополнительный ANT пакет) задача не называется <variable ...
, но <var ...
!
(но это не сработало для меня, так как я думаю, что манипуляция env.*
(созданная с помощью задачи <property environment="env" ... />
) Свойства/переменные Java только для задач/процессов, оценивающих эти свойства Java, которые не автоматически "синхронизируются" с переменными среды ОС)
Ответ 7
Вы можете использовать для расширения пути:
И затем вы можете выполнить для примера sh
от ant
до export
переменную среды:
<property environment="env"/>
<exec executable="sh">
<arg value="-c"/>
<arg value="export PATH=${env.Path}:${myPath}"/>
</exec>
Или выполните свою команду и установите env
с помощью value
, например:
<property environment="env"/>
<exec executable="${your.command}">
<env key="PATH" value="${env.PATH}:${your.directory}"/>
</exec>