- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个大型 Ant 脚本(> 1000 行),该脚本是我从其他人那里继承的(不再可用)。我遇到 Ant 不删除目录的问题。在脚本中的某一时刻它起作用,而在另一时刻却不起作用:Ant 不会给出错误消息,但它也会将目录保留在原来的位置。
我在它周围放置了一些常规,以检查目录是否存在:
<groovy>
println("Directories in @{outFolder} are:")
new File("@{outFolder}").eachDir() { dir -> println dir.getName() }
</groovy>
<delete verbose="true" includeEmptyDirs="true" >
<dirset dir="@{outFolder}" includes="**/*" />
</delete>
<echo>End of delete</echo>
<groovy>
println("Directories in @{outFolder} are:")
new File("@{outFolder}").eachDir() { dir -> println dir.getName() }
</groovy>
因此,这些行被调用并且起作用。接下来,调用其他一些应用程序来创建新目录。再次调用完全相同的行(复制和粘贴,是的,它们是相等的),但现在目录没有被删除。另外:没有错误,Ant 继续运行。我在 Windows Server 2008 R2 上使用 Ant 1.8.1。我尝试添加 sleep ,以防止锁定问题。创建目录的应用程序是 Java 应用程序 (Tibco appManage)。这些目录包含 XML 文件,没有 jar 文件。我检查了 ANT_HOME 和 CLASSPATH:没有问题。我错过了什么?
对于聪明的人来说:当然,第二次删除不应删除应用程序创建的所有内容,但为了解决问题,我使脚本行尽可能简单。
一些更多信息:由于我无法进行删除,我尝试使用 Ant move 作为解决方法。这就是我所看到的:移动在目的地创建空目录,不会从源中删除任何文件或目录,并且不会报告错误。这些源目录/文件(我之前尝试删除)似乎有问题。
另一次尝试:下载最新版本的 Ant 和 Groovy。结果相同。
最佳答案
您正在使用dirset。使用文件集。
说明:一个dirset不是你想的那样。您几乎总是想使用文件集。
第一次,它可以工作,因为目录是空的。第二次,他们就不是了。我可以这么说,因为 <dirset>
包括目录对象本身,但不包括其中的任何文件,并且您在删除任务中使用“includeEmptyDirs”,这对于 dirset 没有意义。
在这样的假设树中:
top/
sub1/
file.txt
sub2/ (empty)
...dirset 集合将选择 top/、top/sub1/和 top/sub2/,但不会 top/sub1/file.txt。 <delete>
作用于集合,并且不会删除非空目录。因此,在上述情况下,它将删除 top/sub2 (为空),但不会删除 top/sub1 或 top/。这也应该为您解释 <move>
的结果尝试,它让您了解 dirset 实际上有用的情况。
一个fileset包括文件和目录。
关于Ant删除首先起作用,然后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10090380/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!