2017-11-21 1 views
0

개미 빌드 파일을 처음 사용합니다. 는 현재 내가 같은 빌드 파일의 목록을 얻을 :개미 빌드에서 복사 작업 전에 파일 이름 바꾸기

a.cls 
b.cls 
c.cls 

하지만 내 지역에서 나는 같은 디렉토리에 파일을 구축 실행해야합니다 :

여기
a-meta.cls 
b-meta.cls 
c-meta.cls 

meta 키워드의 일관성을 유지합니다. 그리고 다음 build.xml 파일을 사용하고 있습니다. 실제로 파일을 복사하기 전에 파일 이름을 어떻게 바꿀 수 있는지 잘 모르겠습니다. 나는 replace, mapper 및 기타 antlib 작업을 시도했습니다. 그러나 도움이되지 않습니다.

<project name="test" default="compile"> 
    <taskdef resource="net/sf/antcontrib/antlib.xml"> 
     <classpath> 
      <pathelement location="lib/ant-contrib-1.0b3.jar"/> 
     </classpath> 
    </taskdef> 

    <loadfile property="file" srcfile="filesToMove.txt"/> <!-- these are the list of files, i mentioned earlier --> 
    <target name="compile"> 
     <echo>${file}</echo> <!-- here i have to rename file name to include -meta --> 
     <copy file="./classes/${file}" tofile="./src/classes/${file}" overwrite="true"/> 
    </target> 
</project> 

파일을 이동하기 전에 이름을 바꾸는 방법.

+0

파일을 이동하는 대신 복사하는 것처럼 보입니다. 원본 이름이 지정된 소스에서 새 이름이 지정된 (메타가있는) 대상으로 복사하면 요구 사항을 충족시킬 수 있습니까? –

+0

이 해결책을 얻었습니다 ... 답변으로 업데이트됩니다. –

답변

0

그 해결책은 .cls을 대체하여 이름 만 찾은 다음 -meta.html을 추가하는 것입니다. 다음과 같이 (일부는 이전 버전과 비교하여 변경되었습니다)

<project name="test" default="compile"> 
    <taskdef resource="net/sf/antcontrib/antlib.xml"> 
     <classpath> 
      <pathelement location="lib/ant-contrib-1.0b3.jar"/> 
     </classpath> 
    </taskdef> 

    <loadfile property="file" srcfile="filesToMove.txt"/> <!-- these are the list of files, i mentioned earlier --> 
    <target name="compile"> 
     <echo>${file}</echo> <!-- here i have to rename file name to include -meta --> 
     <copy file="./classes/${file}" tofile="./src/classes/${file}" overwrite="true"/> 
     <for param="file"> 
      <path> 
       <fileset dir="./" includes="*.cls"/> 
      </path> 
      <sequential> 
       <basename file="@{file}" property="@{file}" suffix=".md"/> 
       <echo message=" ${@{file}}"/> 
       <copy file="${@{file}}-meta.cls" toDir="test"/> 
      </sequential> 
     </for> 
    </target> 
</project>