0

ネストされたすべてのファイルとフォルダーを含むフォルダーを別のフォルダーにコピーできるようにするには、ビルド スクリプトが必要です。コピー先フォルダーには既に独自のファイルとフォルダーが含まれており、そのネストされたフォルダー構造はコピー元フォルダーと重複する可能性があります。いくつかのコマンドを実行したら、コピーされたファイルのみを削除する必要があります。

例:

src_folder
  subfolder1
    file1

dest_folder
  subfolder1
    file2
    file3

ここで削除する必要があるのはdest_folder/subfolder1/file1

Antでこれを行う方法はありますか? そうでない場合は、これを可能にする代替のビルド ツールを提案できますか?

同様の結果を得る 1 つの方法は をバックアップすることdest_folderですが、ファイルが多く、コピーに時間がかかりすぎます。

4

1 に答える 1

0

プロジェクトファイル

├── build.xml
├── dest_folder
│   └── subfolder1
│       ├── file2
│       └── file3
└── src_folder
    └── subfolder1
        └── file1

ビルド出力

$ ant
Buildfile: build.xml

copy-files:
     [copy] Copying 1 file to dest_folder
     [copy] Copying src_folder/subfolder1/file1 to dest_folder/subfolder1/file1

run-cmd-on-files-in-dest-folder:
    [apply] dest_folder/subfolder1/file1

clean-files:
   [delete] Deleting dest_folder/subfolder1/file1

build.xml

<project name="demo" default="run">

   <target name="run" depends="copy-files,run-cmd-on-files-in-dest-folder,clean-files"/>

   <target name="copy-files">
      <copy todir="dest_folder" verbose="true">
         <fileset dir="src_folder"/>
      </copy>
   </target>

   <target name="run-cmd-on-files-in-dest-folder">
      <apply executable="echo">
         <srcfile/>
         <fileset dir="dest_folder">
            <present present="both" targetdir="src_folder"/>
         </fileset>
      </apply>
   </target>

   <target name="clean-files">
      <delete verbose="true">
         <fileset dir="dest_folder">
            <present present="both" targetdir="src_folder"/>
         </fileset>
      </delete>
   </target>

</project>
于 2013-10-21T22:18:17.113 に答える