2011-01-28 66 views
2

我在JUnit測試中運行以下代碼來測試獲取git存儲庫。我正在爲JGit所需的每個基本功能編寫測試,以便我可以在我的應用程序中實現它們。問題是我在下面的git.fetch()調用中不斷收到以下錯誤:JGit/EGit加載翻譯包失敗en_US

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()); 
     } 

謝謝!

回答

2

好吧我想通了。我必須將二進制發行版中的JGitText.properties文件複製到源代碼中的相同包中,將其重命名爲JGitText_en_US.properties,然後手動添加一大堆屬性,以使用JGitText.java中的代碼,但不是在JGitText.properties中定義。

我搜索了整個源代碼以及所有二進制文件和相關文檔,發現沒有引用這些新屬性或者任何地方創建的屬性文件。我不知道爲什麼開發者在源代碼中沒有本地化文件,或者至少有一種方法可以通過構建文件或其他東西來生成。我的意思是他們必須手動將它們添加到他們的源代碼中,而不是提交它。

無論如何,這是一個非常惱人的問題,網上沒有任何文件(谷歌透露反正),所以我想我會分享這個,因爲它可能會幫助其他人遇到同樣的問題。

+0

越來越多,我正在使用此包後悔:( – 2013-01-07 19:17:09