在我的一个项目中,构建时间太长。我能够找到依赖关系,但是每次执行构建时,都必须执行清除操作,该操作将删除所有java文件,然后javac重新编译所有内容。这会消耗大量时间。

我正在使用ANT进行构建,我在想;是否可以根据需要执行清理(删除文件)?为了更好地理解,我举了一个例子:


目标top:构建top.jar
首先定位:构建first.jar
目标秒:构建second.jar


top.jar取决于first.jar和second.jar。如果我更改了与second.jar相关的任何文件,则ANT将运行第二个目标,而当这影响top.jar时,ANT将运行第一目标。到目前为止,一切都很好。

但是,可能发生的是,我在second.jar中重命名了一个类(例如,使用eclipse),最后我得到了两个类:旧类和新类。名称不同,但内容相同。这可能是一个问题,这就是为什么我必须一直运行干净目标的原因。

在上面的示例中,我只对目标执行了清理操作,这没有问题。

所以我的问题是:是否可以确定特定文件夹的内容已更改,并且在发生更改时按需运行ANT任务?

我环顾四周,有一个ANT任务具有与我所需的功能几乎相同的功能。它称为depend。不幸的是,它不执行完全删除。

最佳答案

libnotify bindings for java会有所帮助吗?如果不需要在Java中运行此命令,请签出inotifyKqueue等。

关于java - 是否可以确定特定文件夹的内容已更改,并且发生这种情况时,可以按需运行ANT任务?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5057927/

10-12 00:21
查看更多