2011-11-10 48 views
34

Làm cách nào để kiểm tra sự tồn tại của thuộc tính khi sử dụng Ant?Cách kiểm tra xem tài sản có tồn tại không?

Tôi mở để sử dụng ant-contrib, nếu Ant không cung cấp một điều tương tự.

Ngoài ra, ant-contrib có nhiệm vụ khẳng định, cung cấp exists, nhưng xác nhận không phải là những gì tôi cần ở đây vì tôi muốn có giá trị trả về boolean.

+1

\t \t \t \t \t \t \t \t \t \t \t

+0

Hãy chỉnh sửa bình luận trên nếu ai đó biết làm thế nào để, không chắc chắn nếu mã thẻ sử dụng 4 indents làm việc ở đây trong nhận xét. –

+1

"nếu" nhiệm vụ chỉ được hỗ trợ với Ant-contrib mà tôi sẽ không khuyên bạn nên sử dụng cho phát triển nghiêm trọng. – raudi

Trả lời

52

Bạn có thể sử dụng tác vụ Condition với điều kiện isset.

<project default="test"> 

    <property name="a" value="a"/> 

    <target name="test"> 

    <condition property="a.set" else="false"> 
     <isset property="a"/> 
    </condition> 

    <condition property="b.set" else="false"> 
     <isset property="b"/> 
    </condition> 

    <echo message="a set ? ${a.set}"/> 
    <echo message="b set ? ${b.set}"/> 

    </target> 
</project> 

Output:

test: 
    [echo] a set ? true 
    [echo] b set ? false 
+6

Đảm bảo ** bỏ ** khoảng $ {} xung quanh tên thuộc tính trong '' và ''. – Kent

9

Kể từ Ant 1.9.1 nó có thể sử dụng "if" và "trừ" các thuộc tính. Bạn có thể sử dụng các thuộc tính mới này nếu bạn thêm 2 không gian tên xmlns: if = "ant: if" và xmlns: except = "ant: trừ khi" vào dự án.

<!DOCTYPE project> 
<project xmlns:if="ant:if" xmlns:unless="ant:unless"> 
    <property unless:set="property" name="property.is.set" value="false"/> 
    <property if:set="property" name="property.is.set" value="true"/> 
    <echo>${property.is.set}</echo> 
</project> 

cũng thấy https://ant.apache.org/manual/ifunless.html

+2

Trong thực tế, bạn nên sử dụng Ant> = 1.9.3 khi triển khai đầu tiên trong Ant 1.9.1 có lỗi liên quan đến nếu/trừ khi tính năng! – Rebse

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