我在JUnit测试中运行以下代码以测试获取git存储库。我正在为JGit所需的每个基本功能编写一个测试,以便随后可以在我的应用程序中实现它们。问题是我在下面的git.fetch()调用中不断收到以下错误:
Loading of translation bundle failed for [org.eclipse.jgit.JGitText, en_US]
org.eclipse.jgit.errors.TranslationBundleLoadingException: Loading of translation bundle failed for [org.eclipse.jgit.JGitText, en_US]
代码示例如下。我验证了存储库路径以及所有内容似乎正确。如果我在fetch调用上放置一个断点,然后在MSysGit中运行相同的命令,它将起作用。
try {
String remoteName = "origin";
URIish uri = new URIish(repository.getRepositoryDirectory());
saveRemote(repository2.getRepository(), uri, remoteName);
Git git = repository.getGit();
FetchResult r = git.fetch().setRemote(remoteName).call();
assertNotNull("Did not get any result from fetch.", r);
} catch (JGitInternalException ex) {
fail("Failed to do fetch. " + ex.getMessage());
} catch (InvalidRemoteException ex) {
fail("Failed to do fetch. " + ex.getMessage());
} catch (URISyntaxException ex) {
fail("Failed to do fetch. " + ex.getMessage());
}
谢谢!
最佳答案
好吧,我知道了。我必须将二进制分发文件JGitText.properties复制到源代码中的同一包中,将其重命名为JGitText_en_US.properties,然后手动向其中添加一大堆属性,这些属性与JGitText.java中使用的代码不同在JGitText.properties中定义。
我搜索了整个源代码,所有二进制文件和相关文档,但没有找到对这些新属性的引用,也没有发现在任何地方创建的属性文件。我不知道为什么开发人员在源代码中没有本地化文件,或者至少没有一种通过生成文件或其他方式生成本地化文件的方法。我的意思是,他们必须手动将其添加到源代码中,而不要提交。
无论如何,这是一个非常烦人的问题,网络上任何地方(无论如何Google都没有)上没有文档,所以我想我会分享这一点,因为它可能会帮助遇到相同问题的其他人。