2010-11-19 5 views
5

저는 개미를 거의 10 년 동안 사용해 왔지만 모든 경우에 저는 보통의 경험을 넘어서 뭔가를해야합니다. 이 사람은 명백한 대답이 부족 (그리고 직관적 인 접근 방식은 막 다른 골목에지도)여러 디렉토리 (및 내용)를 한 번에 복사

문제 : 새로운 디렉토리 "MYINSTANCE"디렉토리로 "예"에

복사 여러 하위 디렉토리 (및 그 내용). 명확하게하려면 소스 디렉토리의 일부 하위 디렉토리 만 복사하십시오.

소스 디렉토리 :

example/ 
    ignoreThisDirectory/ 
    ignoreThisOneAlso/ 
    lib 
    etc/ 
    webapps/ 

시도 : 죽은 끝 첫번째 작업 출연에이 시도. lib, etc, webapps 하위 디렉토리를 만들었습니다. 그러나 'copy'는 내용을 복사하지 않았습니다. 나는 빈 서브 디렉토리를 남겼다.

답변

8

지정할 수 있습니다 사전에

<copy todir="myInstance/etc"> 
    <fileset dir="example/etc"/> 
    </copy>  
    <copy todir="myInstance/lib"> 
    <fileset dir="example/lib" /> 
    </copy>  
    <copy todir="myInstance/webapps"> 
    <fileset dir="example/webapps" /> 
    </copy>  

감사 :

<copy todir="myInstance" > 
    <dirset dir="example" includes="lib etc webapps"/>  
</copy>  

은 성공하지만 결국 자세한 정보, 나는 자세한 정보와 비 DRY 보일하는, 개별적으로 각각의 디렉토리를 복사했다 파일 세트의 다중 포함 및 제외 규칙 포함 규칙을 지정하지 않으면 기본적으로 제외 규칙에 의해 한 번 이상 제외 된 것을 제외한 모든 것이 포함됩니다.

<property name="src.dir" value="example" /> 
<property name="dest.dir" value="myInstance" /> 

<copy todir="${dest.dir}"> 
    <fileset dir="${src.dir}"> 
     <include name="lib/**" /> 
     <include name="etc/**" /> 
     <include name="webapps/**" /> 
    </fileset> 
</copy> 

참고 지정된 세 '첨단'하위 디렉토리의 각각에서 전체 디렉토리 트리에 가져올 것이다 ** 와일드 카드 :

는 여기에 포함 된 예입니다. 특별히 몇 가지 디렉토리를 제외 할 수 있지만, 모든 다른 사람을 통해 복사 할 경우 또는, 당신은 포함을 생략 할 수 있습니다 (함으로써 기본 모든 것을 포함하는 동작을 얻을) 및 제외 목록 제공 :

<copy todir="${dest.dir}"> 
    <fileset dir="${src.dir}"> 
     <exclude name="ignoreThisDir*/" /> 
     <exclude name="ignoreThisOne*/" /> 
    </fileset> 
</copy> 

당신은 더 수를 하나의 제외 패턴으로 지정한 특정 예를 끓여주십시오.

<exclude name="ignore*/" /> 
+0

대신에 내가 포함하려는 것을 복사하여 원하는 것을 나열하고 싶습니다. – JasonMArcher

관련 문제