Windows ApacheAnt不管发生什么都会删除目录

Windows ApacheAnt不管发生什么都会删除目录,windows,ant,continuous-integration,Windows,Ant,Continuous Integration,如何让ApacheAnt在任何情况下都删除目录。我希望它被删除,即使有锁或windows上的目录使用 我正在Windows机箱上使用持续集成远程代理,该代理无法删除生成目录,因此导致生成失败。这非常烦人,而且会破坏统计数据 没有任何内容正在使用该目录,并且已禁用防病毒 不管发生什么,我只想删除目录。如何在Windows上使用ApacheAnt实现这一点?我认为您需要外部程序来实现这一点。 勾选这个: _http://www.codeguru.com/cpp/w-p/files/fileio/ar

如何让ApacheAnt在任何情况下都删除目录。我希望它被删除,即使有锁或windows上的目录使用

我正在Windows机箱上使用持续集成远程代理,该代理无法删除生成目录,因此导致生成失败。这非常烦人,而且会破坏统计数据

没有任何内容正在使用该目录,并且已禁用防病毒


不管发生什么,我只想删除目录。如何在Windows上使用ApacheAnt实现这一点?

我认为您需要外部程序来实现这一点。 勾选这个: _http://www.codeguru.com/cpp/w-p/files/fileio/article.php/c1287

这里有解锁工具的比较。请使用命令行界面检查: _http://ccollomb.free.fr/unlocker/

如果你知道哪个进程保存着你的文件夹,你可以调用taskkill…(你甚至可以杀死explorer.exe,但是你可以重新启动它)
如果你的文件夹是共享的,你可以使用net delete命令在Ant中你能做的最好的事情就是设置参数:
quiet=“true”
includeemptydirs=“true”
以防止目录丢失或存在锁时生成停止,并删除顶层目录(即使它是空的)。例如:

<delete quiet="true" includeEmptyDirs="true">
  <fileset dir="stubbornDir"/>
</delete>

您还可以确保尝试删除的资源不是只读的,因此在执行
任务之前,请在脚本中包含以下内容:

    <!-- The following only works on UNIX -->
    <chmod perm="a+w">
        <fileset dir="${dist.dir}">
            <include name="**/*.jar"/>
            <exclude name="${app.context.path}"/>
        </fileset>  
    </chmod>

    <!-- Win NT alternative -->
    <echo message="      To permit file deletion, execute attrib.exe to change read permissions on:  ${dist.dir}"/>
    <exec dir="${dist.dir}" executable="attrib.exe" os="Windows NT,Windows 2000,Windows XP">
        <arg line="-R **/*.jar"/>
    </exec>

但是,为了回答您的问题,恐怕使用Ant无法在存在锁的情况下删除文件或目录

但是,也要注意,如果您在脚本前面使用了
任务,那么除非您设置了
fork=“true”
,否则该任务将锁定类路径中的所有文件,并在整个生成过程中保持锁定


希望这有帮助

我认为java进程没有办法释放其他进程打开的文件句柄。