2014-09-04 19 views
0
<loadfile property="UIfiles" srcfile="updated.txt">   
       <filterchain>   
        <linecontainsregexp>    
         <regexp pattern="ui/dev/"/>   
        </linecontainsregexp>   
       </filterchain>  
</loadfile>  
<echo file="Filelist.txt" append="true">${UIfiles}</echo> 

위의 코드는 build.xml 파일에 있습니다. updated.txt에는 Projects/accounts/spec/ui/dev/dpdl/abc.xml과 같은 텍스트가 포함됩니다. 이 문이 파일에 있으면 위의 코드가 예상대로 작동합니다. updated.txt에 정규 표현식 "ui/dev"가 일치하지 않으면 UIfiles의 값이 비어 있어야하며 Filelist.txt에 아무 것도 써서는 안됩니다. 하지만 필자의 경우 "$ {UIfiles}"는 Filelist.txt에 추가됩니다. 이를 피하는 방법을 제안하십시오. 고맙습니다.이 ANT 문제를 해결하는 방법은 무엇입니까?

답변

0

예상대로 작동합니다. 파일에 정규 표현식과 일치하는 줄이 없기 때문에 $ {...}은 설정하지 않으면 속성에 대한 구문입니다. 당신이 필요로하는

어떤 경우 개미 1.9.3와 new if unless feature와는 isset 조건 :

<project 
    xmlns:if="ant:if" 
    xmlns:unless="ant:unless" 
> 

<loadfile property="UIfiles" srcfile="updated.txt">   
<filterchain>   
    <linecontainsregexp>    
    <regexp pattern="ui/dev/"/>   
    </linecontainsregexp>   
</filterchain>  
</loadfile>  

<echo file="Filelist.txt" append="true">${UIfiles} if:set="UIfiles"</echo> 

</project> 

오래된 개미 버전을 사용, 그렇지 않은 경우 : appendfilelist 대상이 어떻게

<project> 

<target name="checkfile"> 
<loadfile property="UIfiles" srcfile="updated.txt">   
<filterchain>   
    <linecontainsregexp>    
    <regexp pattern="ui/dev/"/>   
    </linecontainsregexp>   
</filterchain>  
</loadfile> 
</target> 

<target name="appendfilelist" depends="checkfile" if="UIfiles"> 
<echo file="Filelist.txt" append="true">${UIfiles}</echo> 
</target> 

<project> 
+0

라고됩니까? 내 문장 세트는 이미 "checkoutspec"타겟 안에 있습니다. – NaveenBharadwaj

+0

일반적으로 ant 스크립트의 워크 플로는 종속성 체인을 통해 설정되므로 다른 대상과의 종속성이있는 여러 대상을 의미합니다. 개인적으로 나는 종종 와 같은 주요 대상을 사용하여 종속성 체인을 구축하고 개미 스크립트에서 기본 대상으로 사용합니다. <프로젝트 이름 = "foobar"xmlns : fl = "..."default = "main"> – Rebse

관련 문제