Муравьиные условия - что стоит первым «если» или «если» - PullRequest
7 голосов
/ 03 ноября 2010

Вопрос

Если цель муравья использует как , если , так и , если только , что оценивается первым?

Пример

Что на первом месте, курица или яйцо? , , .

<target name="prepare" if="chicken" unless="egg" >
    <echo>Dinner time. Chicken is served!</echo>
</target>

Муравей сначала оценит свойство курицы? Или свойство яйца?

1 Ответ

10 голосов
/ 03 ноября 2010

Это на самом деле не вопрос оценки, поскольку свойства либо заданы, либо не установлены до вызова цели.

РЕДАКТИРОВАТЬ: я посмотрел на источник 1.8.1 и логика выглядит следующим образом:

if (!testIfAllows()) {
    project.log(this, "Skipped because property '" + project.replaceProperties(ifCondition)
            + "' not set.", Project.MSG_VERBOSE);
    return;
}
if (!testUnlessAllows()) {
    project.log(this, "Skipped because property '"
            + project.replaceProperties(unlessCondition) + "' set.", Project.MSG_VERBOSE);
    return;
}

Так что unless не будет иметь значения, пока не пройдет if. Но имейте в виду, это не имеет никакого отношения к оценке свойств. Он просто смотрит на них, чтобы увидеть, установлены ли они.

...