Я никогда раньше не слышал о phing, но это выглядит очень многообещающе как инструмент для сборки.Спасибо за публикацию!Я просмотрел документ на phing.info и нашел следующую возможность:
# 0 Я хотел бы уточнить один момент.Вы говорите, что
prompt$ > export MY_VAR=value
prompt$ > phing build.xml
не устанавливает значение MY_VAR, чтобы оно было видно внутри запущенных процессов phing?Я был бы удивлен, но я бы понял, если вы не хотите запускать свой скрипт сборки.
# 1 Я думаю, что в контексте инструмента сборки такая функция, как exec предназначена для запускаавтономная программа, поэтому, хотя exec может запускаться и устанавливать MY_VAR, все это происходит в подпроцессе, который немедленно исчезает, когда exec завершает работу и продолжает обрабатывать следующую задачу в build.xml.
Если выпросто пытаясь убедиться, что ваш phing-скрипт работает с конкретными значениями для env_vars, вы можете попробовать
Command-line arguments:
....
-D<property>=<value>
// Set the property to the specified value to be used in the buildfile
Итак, предположительно, вы можете сделать
phing -DMY_VAR=value build.xml
# 2, вы рассматривали возможность использованияфайл свойств?См. http://www.phing.info/docs/guide/stable/chapters/appendixes/AppendixF-FileFormats.html и прокрутите вниз информацию о build.properties
# 3. Также ...
Phing Built-In Properties
Property Contents
env.* Environment variables, extracted from $_SERVER.
вы получите к ним что-то вроде
${env.MY_VAR}
# 4 Это выглядит ближе к тому, что вы действительно хотите
<replacetokens>
<token key="BC_PATH" value="${top.builddir}/"/>
<token key="BC_PATH_USER" value="${top.builddir}/testsite/user/${lang}/"/>
</replacetokens>
Надеюсь, это поможет.