干净地关闭 JGit

Cleanly shutdown JGit

我已经使用 JGit API 创建了一个本地存储库。完成所有处理后,我想删除本地存储库(这是一个简单的 java.io.File)。但是 File.delete() 操作失败。我已经在打电话了

org.eclipse.jgit.api.Git.close()
org.eclipse.jgit.lib.Repository.close()

是否需要进一步清理?

我 运行 感兴趣的一件事是,如果你使用 Git.cloneRepository().call(),你需要关闭返回的结果,即

    Git result = Git.cloneRepository()
            ....
            .call();

    try {
        ...
    } finally {
        result.close();
    }

另见 this code snippet from the jgit-cookbook

此外,在 JGit 3.5.1 之后的某个时间点修复了 JGit 中可能保持文件句柄打开的一些地方,请参阅 this bug,因此它也可能有助于确保您使用最新版本的 JGit如果您仍在使用旧版本。