2011-11-05 2 views
0

개미와 함께 매우 이상한 문제가 있습니다. 이 스 니펫은 올바른 이름과 타임 스탬프를 사용하지만 오래된 내용이 포함 된 파일 집합을 생성합니다. toDir에서ant는 오래된 파일 내용을 왜 복사합니까?

<target name="inflate-workspace"> 
    <copy todir="${rns.workspace.dir}" preservelastmodified="true" > 
     <fileset dir="${git.dir}/azia" /> 
     <fileset dir="${git.dir}/scrap-menagerie" /> 
    </copy> 
</target> 

결과 타임 스탬프 올바르게 fileset들에서 일치하지만, 각 파일의 내용은 약 2 일 이전입니다. verbose 플래그를 활성화하고 원본 및 대상 디렉터리가 올바른지 수동으로 확인했습니다. 나 또한 수동으로 toDir을 삭제하고 이상한 일이 일어나지 않았는지 확인하기 위해 별도로 대상을 실행했습니다. 정확한 디렉토리와 함께 cp -R ...을 실행하면 완벽하게 작동합니다.

환경은 Windows 7에서 호스팅되는 VBox의 데비안입니다. Google은 "ant copy obsolete file contents"또는 이와 비슷한 것에 대해 아무 것도 알려주지 않았습니다. 알려 주시기 바랍니다, 개미를 가지고 정말 귀찮은 copy가 고장 났어요!

+0

무슨 문제입니까? 복사해서는 안되는 파일이 복사됩니까? 또는 일부 파일이 복사되지 않았지만 반드시 있어야합니까? –

+0

올바른 파일 집합이 복사되지만 각 파일의 텍스트는 2 일 사용되지 않습니다. 전체 대상 디렉토리를 삭제하더라도 발생합니다. 모든 파일이 표시되지만 각 파일을 열고 내부의 오래된 데이터를 볼 수 있습니다. "cp -R"로 프로세스를 복제하면 올 Y 른 내용으로 올 Y 른 파일이 복사됩니다. –

+0

나는 그것을 얻지 못한다 : 당신이 목적지를 삭제하고 개미를 호출한다면, 이전 데이터는 어디에서 왔는가? 그것은 근원에 있어야합니다. –

답변

0

여기서 문제는 개미 1.8.0이 단순히 고장났다는 것입니다. 왜 그것이 게시되었는지, 왜 그것이 데비안의 시냅스에 아직도 있는지 상상할 수 없습니다. 끔찍한 버그 ... 아파치 해킹.

+0

개미 1.8.0이 파일 내용을 2 일 동안 캐시 할 수 있다고 제안합니까? 너의 문제는 다른 곳에있다. 'toDir' 폴더를 지우면 완전한 격리가 아니 었습니다. 보다 완벽한 격리는 결코 존재하지 않는 다른 대상 폴더를 사용하는 것입니다. – Jarekczek

+0

개미가 아무것도 캐싱하지 않는다고 생각합니다.예를 들어, ant는 디렉터리 복사본을 스테이징하기 위해 임시 영역을 사용할 수 있습니다. 관련 코드의 버그로 인해 디렉토리 복사에 부실 파일 데이터가 생성되는 것은 매우 간단합니다. 코드 변경 사항을 조사하고 문제가 무엇인지 확인할 수는 있었지만 최신 버전에서는 제대로 작동합니다. –

0

복사 명령에 overwrite="true"을 추가하십시오.

+0

글쎄, 전체 대상 디렉토리를 삭제하더라도 발생합니다. 아마도 "cp -R"을 사용하여 올바르게 작동하지만 VBox 공유 폴더에 이상한 버그가있을 수 있습니다. –

0

잊어 버릴 수있는 .class 파일을 확인하고 다음 번에 ant를 빌드하기 전에 삭제하십시오.