Подтвердить что ты не робот

Как установить переменную среды пути из ant script

Как установить переменную среды пути из ant script

4b9b3361

Ответ 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 &quot;${env.Path};c:\testPath&quot;" />
    <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>