2013-12-21 30 views
1

我正在使用Maven在Github上执行项目版本。 release:prepare失败:Github项目的Maven版本因使用错误的Github帐户而失败

[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

终于明白了这一点。问题是我在OS X上,并通过Safari登录到我的第二个帐户BAZ。这将钥匙串中的用户名和密码保存为https://github.com。很显然,Maven SCM插件会为HTTPS URL咨询,但git不会。清除钥匙串后,它正确地提示我输入用户名和密码。

1

最简单的事情是明确使用SSH的网址,看到更多的细节in this answer

git remote set-url origin [email protected]:FIZZ/FOO/BAR.git 
+0

谢谢 - 事情是,HTTPS URL可以通过'git'正常工作,这是一个Git设置。这只是与Maven有关。但是,您促使我更加深入地思考HTTPS,并将其弄清楚。我认为这个答案也会起作用,因为它只是避免使用HTTPS,但我会写下关于HTTPS的愚蠢的真实答案。 –

+1

有关钥匙串缓存的好处。我正在考虑在项目设置中严格明确地使用ssh url,如果可能的话使用明确的用户名。当然,除非maven版本被多个用户共享。但即使如此,人们可能会争辩说,拥有一个专用于发布的用户帐户将是有利的。 – mockinterface

+0

就是这样,很多用户使用这个,如果我把用户名放在那里,我认为这会干扰正常的'git'操作?不确定。但同意这是一个很好的做法。 –