运行某些 build.xml 目标时,clean 在删除 ivy jar 目录时有时会出现问题。 “锁定”文件是由 Eclipse 执行的,在目录上使用资源管理器或从 Eclipse 重新运行 ant 拒绝删除它,直到重新启动 Eclipse。这是非常耗时的。
由于某些原因,Eclipse 在运行 ant build/clean 后仍保留此文件。
并不是所有的项目都是这样,只是在某些时候出于未知的原因。
现有讨论。 Eclipse won't delete files
但它并没有回答我关于如何让 Eclipse 运行 ant 而不必每次都重新启动的问题。
有没有办法使用 eclipse -console 来查看文件处理持有它的内容?或者有人知道为什么 eclipse/ant/ivy 在构建一两次后不会放弃这些目标的根本原因(在 Eclipse 重新启动后第一次工作正常),但随后的一些 ant 构建之后它变得不高兴。
就我而言,是 eclipse 肯定锁定了文件。 重新启动 Eclipse 不是一个解决方案。否则,我将返回命令行窗口。我尝试过在同一个 jvm 中设置运行以及各种设置。
我需要调试 Eclipse 插件吗?有没有更简单的方法来找出 Eclipse 及其插件中没有释放锁定的内容?这是我第一次看到这种情况,我怀疑这是 IVY 造成的。
运行juno、ivy、spring、ant,并且在从Eclipse运行Ant Build时遇到问题,clean无法删除工件的lib/build目录。
eclipse.buildId=M20130204-1200
java.version=1.6.0_43
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Framework arguments: -product org.eclipse.epp.package.jee.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.jee.product
!ENTRY org.apache.ivyde.eclipse 1 0 2013-06-04 11:36:50.344
!MESSAGE starting IvyDE plugin
Ant 目标:
<target name="clean-retrieved" >
<delete includeemptydirs="true" >
<fileset dir="${basedir}">
<include name="lib/**" />
</fileset>
</delete>
</target>
错误:
clean-retrieved:
BUILD FAILED
C:\scripts\common-build-targets.xml:238: Unable to delete file C:\scripts\lib\build\annotations-1.3.8.jar <<just first jar file in directory..
最佳答案
当进程正在使用所述文件时会发生这种情况。当使用所述 jar 的程序仍在运行时,我通常会遇到此问题。验证您是否仍在 Eclipse 中运行您的程序。直观地看到这一点的最简单方法是查看以下内容:
启用红色方 block (停止按钮)意味着您的程序仍在运行。如果你按下它,你就会停止你的进程。但是,如果您的程序没有运行,它会看起来像这样:
由于“停止”按钮未启用,这意味着程序没有运行。但是,除了当时显示的进程之外,可能还有其他进程也在运行。要看到这一点,您可以在下一个屏幕截图中看到一个“计算机屏幕”图标:
计算机屏幕被启用表示您已经运行了多个程序/进程。单击向下箭头可以更改为其他程序。检查它们是否正在运行,并停止它们。更简单的方法是按双 X 符号。这将关闭与已完成流程相关的每个部分,并可能会向您显示仍在运行的部分,您可以停止。继续按双 x 和停止按钮,直到所有按钮都消失,您应该能够删除您的 jar,并毫无问题地构建。
关于eclipse ant 构建失败无法删除文件 lib\build,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16945441/