Bạn sử dụng tác vụ available với loại được đặt thành "dir".
Ví dụ:
<available file="${dir}" type="dir"/>
Cách thông thường để làm chế biến có điều kiện là với condition task. Trong ví dụ dưới đây, chạy doFoo sẽ lặp lại một thông báo nếu thư mục tồn tại, trong khi chạy doBar sẽ lặp lại một thông báo trừ khi có thư mục tồn tại.
Các dir.check mục tiêu được yêu cầu của cả hai doFoo và doBar, nó đặt dir.exists tài sản để đúng hay sai tùy thuộc vào kết quả của nhiệm vụ có sẵn. Mục tiêu doFoo sẽ chỉ chạy nếu tính hợp lệ đó được đặt thành true và doBar sẽ chỉ chạy nếu nó không được đặt hoặc được đặt thành false.
<?xml version="1.0"?>
<project name="test" default="doFoo" basedir=".">
<property name="directory" value="c:\test\directory"/>
<target name="doFoo" depends="dir.check" if="dir.exists">
<echo>${directory} exists</echo>
</target>
<target name="doBar" depends="dir.check" unless="dir.exists">
<echo>${directory} missing"</echo>
</target>
<target name="dir.check">
<condition property="dir.exists">
<available file="${directory}" type="dir"/>
</condition>
</target>
</project>
Antelope cung cấp nhiệm vụ bổ sung, trong đó có một nhiệm vụ Nếu có thể làm cho quá trình xử lý đơn giản hơn (và đối với tôi, trực quan hơn), bạn có thể tải về các nhiệm vụ Antelope từ download page.
Nguồn
2009-07-22 09:09:53
Nhưng điều này sẽ đặt giá trị thuộc tính thành true. Sau đó, tôi nên kiểm tra điều kiện như thế nào. Tôi có nghĩa là bất kỳ "nếu"? –
Tại sao xác minh dir.check là sau doFoo và doBar? không phải là cách khác? @Rich Người bán –