Необязательный параметр для <ant>вызова задачи? - PullRequest
0 голосов
/ 18 января 2012

Я хотел бы иметь возможность передавать необязательный параметр в вызов задачи ant, чтобы он отображался как не заданный для вызываемой цели, если он опущен (важно в условиях или при использовании атрибутов unless или if).Я не знаю, установлен ли optArg , поэтому я не могу жестко закодировать параметр.

Пример: для цели ant someTarget требуется обязательный параметр requiredArg и поддерживает необязательный параметр optArg .

. Я могу добиться этого путём простого дублирования:

<if><equals arg1="${optArg}" arg2="true" />
    <then>
        <ant dir="someDir" target="someTarget" inheritAll="false">
            <property name="mandatoryArg" value="42" />
            <property name="optArg" value="true" />
        </ant>
    </then>
    <else>
        <ant dir="someDir" target="someTarget" inheritAll="false">
            <property name="mandatoryArg" value="42" />
        </ant>
    </else>
</if>

Я бы хотел пропустить, еслиутверждение, что вызов муравья не дублируется, не теряя необязательный характер optArg .Я уже нашел этот вопрос , который, кажется, охватывает другую проблему.

Я использую Ant 1.7 и ant-contrib.

Есть идеи?Спасибо!

РЕДАКТИРОВАТЬ: Я также принимаю ответы, которые объясняют, почему это действительно невозможно.

1 Ответ

0 голосов
/ 18 января 2012

Вы можете получить желаемое поведение, используя блок <if> для построения набора свойств, а затем ссылаясь на него внутри одного вызова задачи <ant> позже с <propertyset refid="whatever"/>

...