2013-05-22 2 views
0

나는 다음과 같은 요구 사항을 가지고 있습니다. 나는 속성의 몇 가지를 읽는 .properties 파일 (이름 = 값 쌍)이 있습니다. 특정 속성이 존재하는지 확인하고 싶습니다. 다음 코드에 대해 if doesn't support the "name" attribute 오류가 표시됩니다. 여기서 JavaProjectName, projDir은 .properties 파일에서 가져 오는 이름입니다.ant - if는 "name"속성을 지원하지 않습니다.

<if name="${JavaProjectName}" exists="true"> 
<property name="importJavaProject" value="${projDir}/${JavaProjectName}"/> 
</if> 

어디에서 잘못했는지 알려주실 수 있습니까?

+0

가능 중복 값 http://stackoverflow.com/questions/9207680/how-to-check-if-a-property-has-value-in-ant –

+0

빈 값을 확인하지 않고 확인하고 싶습니다. .properties 파일의 속성 존재 – Thiru

+0

게시물의 isset 태그를 확인하십시오. –

답변

2

the document<if>으로 먼저 읽으십시오. 그것은 당신이 쓴 방식을 지원하지 않습니다.

그것은해야한다 :

<if> 
    <isset property="JavaProjectName" /> 
    <then> 
     <property name="importJavaProject" value="${projDir}/${JavaProjectName}"/> 
    </then> 
</if> 

그러나, 당신이 (수입 파일 빌드 파일 또는 속성) 다른 특성 JavaProjectName가 이전에 설정 한 속성 importJavaProject을 설정합니다. 따라서 JavaProjectName이 설정되지 않은 경우 어떻게해야합니까?

<else> 부분을 생각하거나 빌드를 실패해야합니다.

그냥 존재를 확인하고 존재하지 않는 빌드를 실패 할 경우

, 단지 <fail>를 사용
<fail unless="JavaProjectName"/> 

또한 Condition 작업 및 "Supported conditions"를 확인합니다.


는 추가 :

또한 더 신중하게 코멘트에서 만모한에 의해 게시 된 질문을 읽어 보시기 바랍니다. ".properties 파일의 속성 존재를 확인하십시오."라는 질문에 대한 대답은 "속성이 설정되었는지 여부"와 "값이 비어 있는지 여부"를 모두 확인합니다.

+0

http://ant-contrib.sourceforge.net/tasks/tasks/if.html – Vadzim

+0

@ Vadzim 감사합니다. ~ – coolcfan

+0

답장에 coolcfan 감사합니다. 하지만 그것은 나를 위해 작동하지 않았다. 문서를 읽을 줄 알았어.이 코드 조각을 다른 개미 작업에서 볼 수있다. 내 요구 사항은 다음과 같다 : – Thiru