2017-04-26 81 views
0

讓我們開始說我的代碼工作。我可以單擊一個運行jar文件的批處理文件,從GIT下載一些代碼。JGit Clone Repo從Windows任務管理器啓動失敗

Git gitRepo = Git.cloneRepository().setURI(remoteProjectPath) 
.setDirectory(new File(destination)) 
.setCredentialsProvider(new UsernamePasswordCredentialsProvider(repoUser, repoPassword)) 
.setBranch(branch) 
.setNoCheckout(true) 
.call(); 

在Windows中,我的用戶配置文件夾我有一個包含文件的.gitconfig:

[http] 
sslverify = false 

當我雙擊該批處理文件,它的工作原理。但是,這是自動化過程的一部分。我需要Windows任務計劃程序在午夜執行批處理文件。 (時間並不重要,除了當我不在工作時) 但是我可以打開任務計劃程序並單擊任務並單擊「運行」,並且失敗時顯示sslverify標誌。

「所造成:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路徑建設失敗:sun.security.provider.certpath.SunCertPathBuilderException:無法找到有效的認證路徑請求的目標」

在我看來,.gitconfig僅在我(手動)執行該進程時使用。有沒有辦法確定JGit是否試圖從任務調度程序啓動時從不同的目錄讀取? 或者還有另一種方法讓JGit使用sslverify = false來使用C​​loneCommand進行稀疏檢出嗎?

感謝,

+0

JGit的CloneCommand不能跳過SSL驗證,請看這裏:http://stackoverflow.com/questions/33998477/set-ssl-verification-off-for-jgit-clone-command –

回答

0

我這麼久並肩,終於找到答案短路我發佈問題後。 在EGIT的參考中,我發現:How to change "Location" for "User Settings"

但它對我有效。我去了系統環境變量,並創建了一個系統變量'HOME',並將其設置爲包含我需要的.gitconfig文件的目錄。現在即使從Windows任務調度程序啓動時該過程也可以工作。