2010-11-03 18 views
7

Câu hỏiđiều kiện Ant - mà đến trước 'nếu' hoặc 'trừ'

Nếu một mục tiêu kiến ​​sử dụng cả nếutrừ, được đánh giá đầu tiên?

Ví dụ

gì xảy ra trước, con gà hay quả trứng? . . .

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

Kiến kiến ​​có đánh giá đặc tính của gà trước không? Hoặc tài sản trứng?

Trả lời

9

Nó không thực sự là một câu hỏi đánh giá, vì các thuộc tính hoặc là không được thiết lập trước khi đích được gọi.

EDIT: Tôi nhìn vào nguồn 1.8.1 và logic như sau:

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; 
} 

Vì vậy, các unless sẽ không thành vấn đề trừ khi if đèo. Nhưng hãy nhớ, những thứ này không liên quan gì đến việc đánh giá các thuộc tính. Nó chỉ nhìn chúng để xem chúng có được thiết lập không.

+0

Lớp có liên quan là [org.apache.tools.ant.Target] (http://svn.apache.org/repos/asf/ant/core/tags/ANT_181/src/main/org/apache/tools /ant/Target.java) –

Các vấn đề liên quan