Deleting a file in ant

16,468

Solution 1

You could try ant-contrib's trycatch to run the delete task even if the build fails.

There's other goodies in ant-contrib like the foreach task. If you're able to install it.

Solution 2

How about defining a "clean" task that deletes the leftover files, and you can call that after each build (even after failed builds)?

I think Ant is not very good with these kind of conditional flow-control things. There may be a way to make that work, but that could get messy,

Share:
16,468
Medly
Author by

Medly

Java/C++ software engineer.

Updated on June 09, 2022

Comments

  • Medly
    Medly almost 2 years

    For ease of access, I have a couple of config files in the parent of a series of project folders. When building the projects, they need copying into one of the projects source folders until after the build is finished, whereupon I'd like them to be deleted. At the moment, I have this:

    <target name="build-java">
      <copy file="config.properties" todir="project/src" />
      <!-- Build other projects -->
      <delete file="project/src/config.properties" />
    </target>
    

    Which does the job if the projects build. Alas for my pride, they don't always. Ideally, I'd like the equivalent of the following Java:

    File src = new File("config.properties");
    File dst = FileUtils.copyFile(src, "project/src");
    dst.deleteOnExit();
    // Carry on with the rest of the build, content in the knowledge that whatever happens, the file will die.
    

    But neither the Copy nor the Delete ant tasks seem up to the job. This doesn't seem like a particularly obscure need?

  • hansvb
    hansvb about 14 years
    +1 for that. But I maintain that these constructs are rather foreign to Ant. Which is why I guess none of this made it into Ant core.
  • Medly
    Medly about 14 years
    Manually? That strikes me as less desirable than giving up and leaving the file in project/src.
  • Medly
    Medly about 14 years
    Can't use ant-contrib unfortunately, but that would do the job nicely. Thanks!