2012-10-16 3 views
1

일부 파일은 다른 파일과 내용이 공통된 여러 개의 zip 파일을 만들고 싶습니다. 각 우편에 대한 전체 파일 목록을 지정하는 대신 (실제로는 꽤 큽니다) 재사용을 시도 할 것이라고 생각했습니다. Ant에서 여러 zip 파일 세트 요소를 재사용하려면 어떻게해야합니까?

그래서 나는 이것에 대한 <union>를 사용하여 시도 :

<project name="test" default="zips"> 
    <target name="zips"> 
    <union id="common"> 
     <zipfileset prefix="." dir="." includes="1"/> 
     <zipfileset prefix="3" dir="." includes="2"/> 
    </union> 
    <zip zipfile="1.zip"> 
     <resources refid="common"/> 
    </zip> 
    <zip zipfile="2.zip"> 
     <resources refid="common"/> 
    </zip> 
    </target> 
</project> 

이 "1"과 각 내부 "2"두 개의 압축 파일을 생성 않지만, "3"접두사는 두 파일에서 누락되었습니다.

내가 뭘 잘못하고 있니?

또한 내부적으로 zipfileset을 사용하는 사용자 지정 작업이 있습니다. 나는 그것도 노조와 함께 작동 시키려고 노력했지만 접두사 값을 얻는 방법을 알아낼 수 없었다.

답변

2

당신의 common resourcecollection이 시도 :

<union id="common"> 
    <fileset dir="." includes="1"/> 
    <mappedresources> 
     <fileset dir="." includes="2"/> 
     <globmapper from="*" to="3/*"/> 
    </mappedresources> 
</union> 

src 매개 변수로 지정된 아카이브에서 파일을 읽을 때 zipfilesetprefix 매개 변수 만 그렇지 않으면 무시되고, 사용 - 당신이 볼 수있는 행동이다 . 사용하기 위해 만든 아카이브에 접두어를 지정하려고합니다. 그렇게하려면 매퍼 (mapper)가 필요합니다.

은 참조 : 개미 문서를 재미있는 mappedresources.

+0

을 위해. 그래서 나는 이것이 약간의 잡았다 고 생각합니다. 안에 는 접두어를 사용하지만 모양을 보았고 zip 작업이 명시 적으로이를 찾은 다음 매퍼로 변환하는 것으로 보입니다. – Trejkaz

+0

실제로 그것을 구현하는 캐치 하나만 ​​- 사용자 지정 작업의 리소스 개체에서 파일의 위치를 ​​파생시키는 방법을 알 수 없습니다. :) – Trejkaz