Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven JGitFlow插件HTTPS身份验证_Git_Maven_Authentication_Bitbucket - Fatal编程技术网

Maven JGitFlow插件HTTPS身份验证

Maven JGitFlow插件HTTPS身份验证,git,maven,authentication,bitbucket,Git,Maven,Authentication,Bitbucket,我在Windows上通过Maven JGitFlow插件运行git bash通过HTTPS验证BitBucket时遇到问题 错误消息为:“需要身份验证,但未注册任何CredentialsProvider”。不过,我看到的建议似乎假设我作为开发人员可以访问JGit代码本身 我直接执行git命令时没有遇到任何问题(我使用的是git-credential-winstore)。此外,当我在POM.xml文件中显式地在POM中提供用户名和密码时,它也起作用 但是,我不希望我的密码被上传到我的BitBuck

我在Windows上通过
Maven JGitFlow
插件运行
git bash
通过HTTPS验证BitBucket时遇到问题

错误消息为:“需要身份验证,但未注册任何CredentialsProvider”。不过,我看到的建议似乎假设我作为开发人员可以访问JGit代码本身

我直接执行git命令时没有遇到任何问题(我使用的是
git-credential-winstore
)。此外,当我在POM.xml文件中显式地在POM中提供用户名和密码时,它也起作用

但是,我不希望我的密码被上传到我的BitBucket存储库,我正在寻找一种方法,让
JGitFlow
插件以与GIT本身相同的方式进行身份验证


我做错了什么?我该如何解决这个问题?

下面的JGitFlow Maven插件配置工作正常

<plugin>
    <groupId>external.atlassian.jgitflow</groupId>
    <artifactId>jgitflow-maven-plugin</artifactId>
    <version>1.0-m5.1</version>
    <configuration>
        <username>${git.user}</username>
        <password>${git.password}</password>
    </configuration>
</plugin>

external.atlassian.jgitflow
JgitFlowMaven插件
1.0-m5.1
${git.user}
${git.password}
使用用户名和密码作为Java系统属性从命令行调用它,即使用
-Dgit.user=
-Dgit.password=
,例如

mvn-Dgit.user=user@bitbucket.com-Dgit.password=secret jgitflow:release start


注意:插件应该使用Maven
CredentialsProvider
更新,它能够从
settings.xml
和/或Git凭据解析器获取凭据,Git凭据解析器在命令行上使用与Git相同的机制。

这是一个我没有想到的聪明解决方案。然而,这是否会使每个想参与我的项目的人都必须这样做(即使他们使用另一种形式的凭证)?是的,每次他们使用发布插件时,他们都需要提供凭证。可能只有在连接到远程存储库时才需要它们,我还没有测试过。我们的用例被搞糟了,因为我们还需要将凭据传递给代理…虽然这改善了情况(我的凭据不会与我的合作伙伴共享),但这仍然会迫使我采取行动方式(例如,它似乎不太适合公共存储库).您是否考虑过从HTTPS切换到SSH身份验证?这里有一个简单的操作说明:对于那些使用SourceTree的人,有一些关于如何将其切换到基于OpenSSH的SSH身份验证(这是Windows上Git的默认设置)的链接:我最近在github上发现了一个项目,它取代了这个想法(不确定它是否是一个直接的延续),但它使用https身份验证: