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>
ディレクトリのみを指定する必要があります(includesプロパティを除く):
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
詳細と例については、 manual をご覧ください。
ディレクトリ自体を含むコンテンツをコピーします。
<copy todir="${dest.dir}" >
<fileset dir="${src.dir.parent}" includes="${src.dir}/**"/>
</copy>
Build.xmlファイルのコードスニペットに示すように、インクルードタグを使用して、ディレクトリ内の個々の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は、ソースファイルが宛先ファイルよりも新しい場合にのみサブディレクトリをコピーします。 [1] 私の場合、サブディレクトリはコピーされていません(verbose = "true"を使用しています)。変更がなく、既に宛先にあったためです。 「上書き」を使用してそれを強制するか、ソースのサブディレクトリ内のファイルの一部に触れることができます。
すべてのサブフォルダーをコピーするために、より一般的なパターンを追加しています。
<copy todir="${dest.dir}" >
<fileset dir="${src.dir}" includes="**/*"/>
</copy>
詳細については、 パターン を参照してください。
別のantタスクは Copydir です。ここで重要なのは、destディレクトリの後にコピーするディレクトリの名前を含めることです。サブディレクトリとファイルは自動的にコピーされます。
<target name="-post-jar">
<copydir src="config" dest="${dist.dir}/config/"/>
</target>
例 here から、コピータスクを使用して簡単な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
にコピーされます。
私は最終的に次のコードを使用してコピーしました
<copy todir="${root.dir}/dist/src">
<fileset dir="${root.dir}/build/src" includes="**"/>
</copy>
これにより、srcフォルダーがdistからビルドにコピーされます。
これが誰かを助けることを願っています。
このコードは、フォルダーとその内容をコピーする必要があります。また、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>