【问题标题】:ANT build.xml delete task of directory not workingANT build.xml 删除目录的任务不起作用
【发布时间】:2014-02-03 23:07:46
【问题描述】:

我有一个 xml 脚本,用于在此结构之外构建项目。

    • src 文件和包子目录
  • rsrc
    • build.xml

从 src 文件夹构建后,在 rsrc 中创建了一个 build 和 lib 文件夹

    • src 文件和包子目录
  • rsrc
    • 构建
      • 包子目录
    • build.xml

一切正常后,build 文件夹将被 .class 文件填充到它们的包子目录中。在 lib 文件夹中,分发 .jar 有它的位置。现在我的问题是我写了这个名为“clean”的目标:

  <target name="clean"
        description="clean up" >
        <!-- Delete the ${build} directory tree -->
        <delete dir="${build}"/>
  </target>

应该删除构建文件夹、其子文件夹和内容。 $Build 定义为:

  <property name="build" location="build"/>

基础目录为 basedir="."

但是什么都没有被删除,我做错了什么。

最好的问候斯特凡 (如果您需要更多信息,请询问)

编辑: 如果我用“ant -v clean”调用它,构建文件将被删除..如果我用“ant”或“ant -verbose”调用它不是。

【问题讨论】:

  • 尝试使用ant -v clean 运行。这将准确地显示 Ant 试图删除的内容。 (并忽略建议使用 ${basedir}/build 的答案——他们显然不知道 Ant 中的相对路径已经被视为相对于 basedir。)
  • 如果您将此作为答案发布,那么您就是我的首选 :) 非常感谢您

标签: java xml ant


【解决方案1】:

使用如下属性。

<property name="build" value="${basedir}/build"/>

【讨论】:

  • 问题仍然存在.. 没有错误只是建立成功并且文件夹保持在创建位置:(
【解决方案2】:

尝试改用 ${basedir}。这将指向构建文件的父目录。组织文件夹的一种常用方法是将 build.xml 放在 build 文件夹中,将 build 的输出放在 build/output 中。

【讨论】:

  • ${basedir} 而不是..?
  • 用于引用当前目录。因此,在这种情况下,您将使用“${basedir}/build”作为构建目录。但是我在您的其他评论中看到它不起作用。可能是权限问题,尝试以管理员任务运行Ant。另外,请确保文件没有被其他 Ant 任务锁定。
  • 也尝试作为管理员任务。有没有办法以某种方式观察 xml 脚本。试过 ant -verbose 但没有错误或警告,但也没有提到删除过程
  • 我不知道。可能是一个进程挂起,如果没有其他工作,请尝试重新启动。另外,您是否在其他任务中使用此文件?或者这就是你的 build.xml 文件。
【解决方案3】:

也许您忘记将目标称为“干净”?

尝试使用 -v 标志执行您的 ant,这样我们就可以看到 ant 生成的输出,以查看目标是否已执行。

查看目录是否正确,可以在目标中添加&lt;echo message="${build}"/&gt;(http://ant.apache.org/manual/Tasks/echo.html),验证目录的绝对路径。

希望对你有帮助!

【讨论】:

  • Stefan,你试过添加回声吗?通过这个 echo 任务,您可以检查目标是否正在执行以及您要删除的绝对路径。
【解决方案4】:

尝试使用ant -v clean 运行。这将准确地显示 Ant 试图删除的内容。 (并且忽略建议使用 ${basedir}/build 的答案——他们显然不知道 Ant 中的相对路径已经相对于 basedir。)

【讨论】:

  • 显然只有在执行 ant -v clean 时才会删除文件夹。使用 ant -verbose 或只是 ant 文件夹仍然存在
  • 出现错误.. 而不是 clean 它是之前的过程。但是您的解决方案帮助我解决了这个问题
【解决方案5】:

使&lt;target name="clean"&gt; 依赖于init

<target name="init" depends="clean">
        code
    </target>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多