JGit Clone Repo从Windows任务管理器启动失败

时间:2017-04-26 19:01:30

标签: clone jgit taskmanager taskscheduler

让我们开始说我的代码是有效的。我可以单击运行jar文件的批处理文件,从GIT下载一些代码。

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:无法找到所请求目标的有效证书路径& #34;

在我看来,.gitconfig仅在我(手动)执行进程时使用。有没有办法弄清楚JGit是否在由任务调度程序启动时尝试从不同的目录读取? 或者还有另一种方法可以让JGit使用sslverify = false来使用C​​loneCommand进行稀疏结账吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

我打了这么久,最后在我发布问题后找到答案。 在提及EGit时,我发现:How to change "Location" for "User Settings"

但它对我有用。我转到系统环境变量并创建了一个系统变量' HOME'并将其设置为包含我需要的.gitconfig文件的目录。现在,即使从Windows任务调度程序启动,该过程仍然有效。