2017-04-26 46 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任务调度程序启动时该过程也可以工作。