2011-05-06 4 views
2

토큰이 특정 내용이있는 행에있는 경우에만 Ant 빌드 파일에서 토큰 바꾸기를 시도하고 있습니다. 파일에서Ant의 조건부 토큰 교체

샘플 모형 조각 :이 예에서

<script type="text/javascript" src="scripts/someFolder/someFile1.js"></script> 
<script type="text/javascript" src="scripts/otherFolder/fileName.js"></script> 
<script type="text/javascript" src="scripts/aFolder/file3.js"></script> 
<script type="text/javascript" src="scripts/someFolder/aFile.js"></script> 
<script type="text/javascript" src="scripts/someFolder/subfolder/anotherFile.js"></script> 
<body> 
<p>Stuff</p> 

, 나는 "somefolder"에서오고있는 JS 파일의에 타임 스탬프를 추가합니다. 내가 (실제 정규식이 다른)이 라인을 따라 뭔가를 시도했다 :

<copy file="xyz.jsp" tofile="${staging}/jsp/Links-test.jsp"> 
    <filterchain> 
     <linecontainsregexp> 
      <regexp pattern="someFolder" /> 
     </linecontainsregexp> 
      <replacestring from=".js" to=".js?blahblah" />    
    </filterchain> 
</copy> 

하지만 그건 그냥 수정 된 전용 라인을 파일에 발생합니다. 모든 파일 내용을 유지하기 위해 어떤 플래그를 설정해야합니까? 조건부 대체품 만 있으면 전체 파일이 필요합니다.

답변

0

여러 개의 필터 체인을 함께 배치 할 수 있습니다. 필터 체인은 정규식이 포함 된 행을 필터링합니다. 당신은 무엇이 필요에 다시 추가 할 수있는 두 번째 필터 체인

완전히 검증되지 않은 :.

<copy file="xyz.jsp" tofile="${staging}/jsp/Links-test.jsp"> 
    <filterchain> 
     <linecontainsregexp> 
      <regexp pattern="someFolder" /> 
     </linecontainsregexp> 
      <replacestring from=".js" to=".js?blahblah" />    
    </filterchain> 
    <filterchain> 
     <linecontainsregexp negate="true"> 
      <regexp pattern="someFolder" /> 
     </linecontainsregexp> 
    </filterchain>    
</copy>