ANT 및 사용 가능한 작업 - 무언가를 사용할 수 없다면 어떻게해야합니까?
문제
작업을 사용하면 재산이 리소스 (파일)를 사용할 수있는 경우에만 TRUE로 설정됩니다. 그렇지 않다면, 속성은 정의되지 않습니다.
속성의 값을 인쇄 할 때 리소스를 사용할 수있는 경우에도 적용되지만 그렇지 않으면 속성 이름을 인쇄합니다.
자원이있는 경우 속성을 일부 가치로 설정하는 방법이 있습니까? ~ 아니다 사용 가능? 사용 가능한 수표 전에 숙박 시설을 명시 적으로 설정하려고 시도했지만 ANT는 다음과 같습니다.
[available] DEPRECATED - used to override an existing property. [available] Build file should not reuse the same property name for different values.
해결책
not과 함께 조건을 사용할 수 있습니다.
http://ant.apache.org/manual/tasks/condition.html
<condition property="fooDoesNotExist">
<not>
<available filepath="path/to/foo"/>
</not>
</condition>
다른 팁
<available filepath="/path/to/foo" property="foosThere" value="true"/>
<property name="foosThere" value="false"/>
FOOSTHERE의 할당은 가용성 점검으로 아직 TRUE로 설정되지 않은 경우에만 성공할 것입니다.
이 동작의 이유는 대상의 IF/가 아닌 경우입니다. 이러한 속성이있는 대상은 이름이있는 속성이 설정되지 않는 한/이면 실행됩니다. false로 설정되거나 True로 설정되면 차이가 없습니다. 따라서 사용 가능한 작업을 사용하여 속성을 설정 하고이 실행을 기준으로 (또는 그렇지 않음) 작업을 수행 할 수 있습니다. ANT의 속성이 불변이 없기 때문에 사용 가능한 작업 전에 속성을 설정하는 것은 해결책이 아닙니다. 일단 설정하면 변경할 수 없습니다.
이전에없는 경우 속성을 값으로 설정하는 세 가지 가능한 솔루션이 있습니다.
- 사용 가능한 작업을 NOT과 함께 사용합니다.
- 속성을 설정하는 작업을 만듭니다. 속성을 설정하면 속성이 설정되지 않은 경우에만 실행됩니다 (작업의 문의하지 않는 한).
- 당신은 단순히 속성을 설정합니다 ~ 후에 사용 가능한 호출. 부동산은 설정이없는 경우에만 변경되므로 원하는 작업을 수행합니다.
제휴하지 않습니다 StackOverflow