[java] Ant를 사용하여 디렉토리를 복사하는 방법

copydir디렉토리 트리를 복사하는 데 사용 했지만 더 이상 사용되지 않습니다. 내 디렉토리에는 일부 하위 디렉토리가 포함되어 있으며 일부에는 파일이 포함되고 다른 일부에는 더 많은 하위 디렉토리가 포함되어 있습니다.

전체 트리를 복사하려면 어떻게해야합니까?



답변

<copy todir="${dest.dir}" >  
    <fileset dir="${src.dir}" includes="**"/>  
</copy> 

그것이 당신이 원하는 것을 할 것이라고 믿습니다 … (재귀 복사 완료)


답변

디렉토리 자체를 포함한 내용을 복사합니다.

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

참고 : $ {src.dir}은 전체 경로가 아니라 $ {src.dir.parent}에 상대적입니다.


답변

디렉토리 만 지정하면됩니다 (include 속성 제외).

<copy todir="../new/dir">
    <fileset dir="src_dir"/>
</copy>

자세한 내용과 예제 는 설명서 를 참조하십시오.


답변

디렉토리 자체를 포함한 내용을 복사합니다.

<copy todir="${dest.dir}" >
  <fileset dir="${src.dir.parent}" includes="${src.dir}/**"/>
</copy>


답변

요점 : ant는 소스 파일이 대상 파일보다 최신 인 경우에만 하위 디렉토리를 복사합니다. [1] 제 경우에는 변경 사항이없고 이미 대상에 있었기 때문에 하위 디렉터리가 복사되지 않았습니다 (verbose = “true”사용 중). “덮어 쓰기”를 사용하여 강제하거나 소스 하위 디렉토리의 일부 파일을 터치 할 수 있습니다.


답변

내 build.xml 파일의 아래 코드 스 니펫에 표시된 것과 같이 include 태그를 사용하여 디렉토리 내부의 개별 jar 파일을 복사했습니다.

<target name="devInstall" depends="generateXsl" description="testing">
<copy flatten="true" todir="${test}/WEB-INF/lib" overwrite="${overwrite}">
                <fileset refid="buildJars"/>
                <fileset dir="lib">
                    <include name="commons-collections-*.jar"/>
                    <include name="commons-io-*.jar"/>
                    <include name="kodo/*.jar"/>
                    <include name="mail*.jar"/>
                    <include name="activation*.jar"/>
                    <include name="guava*.jar"/>
                    <include name="jna*.jar"/>
                </fileset>
            </copy>
</target>


답변

여기 예제 에서 복사 작업을 사용하여 간단한 Ant 파일을 작성할 수 있습니다.

<project name="MyProject" default="copy" basedir=".">
    <target name="copy">
        <copy todir="./new/dir">
           <fileset dir="src_dir"/>
        </copy>
    </target>
</project>

내부의 모든 항목 src_dir(제외)을 new/dir.