Будет ли что-то подобное делать свое дело?
<condition property="file.is.readonly">
<not>
<isfileselected file="${the.file.in.question}">
<writable />
</isfileselected>
</not>
</condition>
<fail if="file.is.readonly" message="${the.file.in.question} is not writeable" />
При этом используется задача condition
и условие isfileselected
(не прямая ссылка - вам придется искать вниз по странице) в сочетании с writable
селектор (и обратный с условием not
).
Обновление:
Возможно, лучшей альтернативой будет:
<fail message="${the.file.in.question} is not writeable">
<condition>
<not>
<isfileselected file="${the.file.in.question}">
<writable />
</isfileselected>
</not>
</condition>
</fail>
Это проверка и сбой как одно отдельное действие, а не два, так что вы можете найти его более понятным, и для него не нужно использовать имя свойства, поэтому ваше пространство имен чище.