Phing: доступ к атрибуту значения в теге ‹condition›

Пытаюсь выучить Phing, конвертируя Ant Build.xml в Phing. Не могу найти функцию поиска в документе пользователя Phing....

Вот что у меня есть:

<condition property="script-suffix" value=".bat" else="">
<os family="windows" />
</condition>

<echo message="Script-suffix is ${script-suffix}" />

Есть две проблемы, которые мне нужно исправить, но я не знаю, как:

  1. Я не знаю, как преобразовать это условие в приемлемое для Phing. Атрибут else="" вызывает ошибку.

  2. Я не могу получить доступ к свойству script-suffix, используя ${script-suffix}

Я пробовал тег ${project.script-suffix}, ${phing.script-suffix}, $, and other obvious combination. And attempted to change the condition using the <if>, ‹else› и эффектно провалился T__T.

Заранее спасибо ^__^.


person mythicalprogrammer    schedule 02.08.2010    source источник


Ответы (2)


<condition property="script-suffix" value=".bat">
<os family="windows" />
</condition>

<if>
<equals arg1="${script-suffix}" arg2=".bat" />
<then>
<os family="windows" />
</then>
<else>
<property name="script-suffix" value="" />
</else>
</if>
<echo message="---- Build Properties ----" />
<echo message="" />

<echo message="OS is ${os.name}" />
<echo message="Basedir is ${project.basedir}" />

<echo message="Script-suffix is ${script-suffix}" />

<echo message="" />
<echo message="---- Storefront Properties ----" />

Ах, я думаю, я понял, у меня нет оконной машины, чтобы проверить опцию Windows OS. Спасибо.

person mythicalprogrammer    schedule 02.08.2010

Это работает для меня:

<property name="script-suffix" value="" />
<condition property="script-suffix" value=".bat">
    <os family="windows" />
</condition>

or

<condition property="script-suffix" value=".bat">
    <os family="windows" />
</condition>
<condition property="script-suffix" value="">
    <not>
        <os family="windows" />
    </not>
</condition>

Для меня ваш код возвращается (Phing 2.6.1)

BUILD FAILED
Error reading project file [wrapped: os (unknown) doesn't support the 'family' attribute.]

кроме того, мне кажется, что вы не можете использовать <property /> задачу, вложенную в if условия.

person piotr_cz    schedule 04.12.2013
comment
Я также преобразовывал рабочий файл сборки из ant в Phing, и ваше первое предложение сработало отлично, спасибо. - person Carlton; 13.01.2014