如何找出哪些文件影响 incubator-netbeans 构建?

How to figure out which files impact the incubator-netbeans build?

我在 incubator-netbeans 项目中遇到以下 ant 构建失败:

> git clone https://github.com/apache/incubator-netbeans
Cloning into 'incubator-netbeans'...
remote: Counting objects: 161480, done.
remote: Compressing objects: 100% (79/79), done.
remote: Total 161480 (delta 45), reused 103 (delta 30), pack-reused 161321
Receiving objects: 100% (161480/161480), 126.01 MiB | 5.61 MiB/s, done.
Resolving deltas: 100% (82375/82375), done.
Checking out files: 100% (44314/44314), done.
> cd incubator-netbeans/
> ant
OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=512m; support was removed in 8.0
Buildfile: /tmp/incubator-netbeans/build.xml

-jdk-pre-preinit:

-jdk-preinit:

-jdk-warn:

-jdk-presetdef-basic:

-jdk-default:

-jdk-init:

-load-build-properties:

bootstrap:
[mkdir] Created dir: /tmp/incubator-netbeans/nbbuild/build/antclasses
[javac] Compiling 4 source files to /tmp/incubator-netbeans/nbbuild/build/antclasses
[downloadbinaries] Creating /tmp/incubator-netbeans/javahelp/external/jhall-2.0_05.jar

BUILD FAILED
/tmp/incubator-netbeans/nbbuild/build.xml:72: File /tmp/incubator-netbeans/javahelp/external/jhall-2.0_05.jar requested by /tmp/incubator-netbeans/javahelp/external/binaries-list to have hash CA70822C47A67FC3A11670270567C2D01566DAE1 actually had hash DA39A3EE5E6B4B0D3255BFEF95601890AFD80709

Total time: 1 second

我在 https://issues.apache.org/jira/browse/NETBEANS-787 报告过。它没有引起注意,因为我无法在任何 CI 服务、Ubuntu Docker 图像或 VirtualBox 图像内部重现它,实际上只能在我的 Ubuntu 18.04 (因此这个问题的优先级应该很低,我假设检查问题跟踪器的开发人员正在处理它,因此我想,我可能会找到一种方法自己重现它)。

由于删除源根目录和新的克隆不能解决问题,我需要想办法找到该文件(我假设只有源根目录之外的配置文件可能是原因)这导致故障。可能是其他我想不到的原因。我不记得我是否曾经在源根目录之外设置过一些东西。

我可能会等待构建系统迁移到 Maven(这个想法已经存在了几十年?),但我认为它不是解决这个特定问题的有效方法:)

显然 ant 构建系统或它在幕后使用的工具无法下载存储在 ~/.hgexternalcache 中的错误文件,而是简单地失败而没有任何有用的反馈。因此,可以通过删除缓存目录来解决此问题。

问题已更新为 link 并标记为已解决。