답변:
<copy todir="${dest.dir}" >
<fileset dir="${src.dir}" includes="**"/>
</copy>
그것이 당신이 원하는 것을 할 것이라고 믿습니다 ... (재귀 복사 완료)
includes
당신이 모든 (사용자 의해 답변을 참조 할 때 필요하지 않습니다 를 Sin )
디렉토리 자체를 포함한 내용을 복사합니다.
<copy todir="${dest.dir}" >
<fileset dir="${src.dir.parent}">
<include name="${src.dir}/**"/>
</fileset>
</copy>
참고 : $ {src.dir}은 전체 경로가 아니라 $ {src.dir.parent}에 상대적입니다.
x.parent
을지지 않습니다하도록되어 parent
의 x
... -_-
디렉토리 만 지정하면됩니다 (include 속성 제외).
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
자세한 내용과 예제 는 설명서 를 참조하십시오.
디렉토리 자체를 포함한 내용을 복사합니다.
<copy todir="${dest.dir}" >
<fileset dir="${src.dir.parent}" includes="${src.dir}/**"/>
</copy>
내 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
.
이 코드는 폴더와 그 내용을 복사해야합니다. 또한 수동 경로 구문 분석을 수행 할 필요가 없도록 basename 태스크를 사용합니다.
<project name="Build" default="doCopy">
<property name="source.dir" value="SourceDirPathGoesHere"/>
<property name="dest.dir" value="DestinationDirPathGoesHere"/>
<target name="doCopy">
<basename property="source.dir.base.name" file="${source.dir}"/>
<copy todir="${dest.dir}">
<fileset dir="${source.dir}/.." includes="${source.dir.base.name}/**"/>
</copy>
</target>
</project>