我正在使用Maven在Github上发布一个项目。 release:prepare
失败了:
[ERROR] Provider message:
[ERROR] The git-push command failed.
[ERROR] Command output:
[ERROR] remote: Permission to FOO/BAR.git denied to BAZ.
[ERROR] fatal: unable to access 'https://github.com/FOO/BAR.git/': The requested URL returned error: 403
奇怪的是,BAZ
是“错误的”github.com
帐户。它是我在Github上使用的两个用户名之一,但不是我用过BAR
项目的用户名。假设正确的帐户是FIZZ
。
SCM设置未指定用户名:
<scm>
<connection>scm:git:https://github.com/FOO/BAR.git</connection>
<url>scm:git:https://github.com/FOO/BAR.git</url>
<developerConnection>scm:git:https://github.com/FOO/BAR.git</developerConnection>
...
</scm>
(FOO
是我所属的组织。)事实上,我无法弄清楚地球BAZ
的来源。它不在~/.gitconfig
或.git/config
中。没有~/.m2/settings.xml
个文件。我的Maven settings.xml
文件对Github一无所知。
如果我在命令行上使用git
它可以正常工作 - 例如push
就好了。
有谁能告诉我这可能来自哪里?一个隐藏的配置文件或目录,无论是Maven还是Git相关的?
或者,记录Github用户在私有本地文件中使用的最佳做法是什么,例如Maven settings.xml
或.git/config
,这样我就不需要将自己的用户放入构建文件中?
我正在使用Mac OS X.
答案 0 :(得分:1)
最简单的方法是明确使用ssh网址,详情请见in this answer。
git remote set-url origin git@github.com:FIZZ/FOO/BAR.git
答案 1 :(得分:0)
终于弄明白了。问题是我在OS X上,并通过Safari登录到我的第二个帐户BAZ
。这样就保存了Keychain中https://github.com
的用户名和密码。显然,Maven SCM插件会针对HTTPS URL进行咨询,但git
不会。清除Keychain后,它正确地提示我输入用户名和密码。