3

我在没有安装 git 命令行的 Windows 机器上。我已经安装了 GitExtensions 和一个 EGit,这对我来说已经足够了(直到现在)。

现在我想按照本指南对 BinTray 执行 maven 发布: 使用 Github、Bintray 和 maven-release-plugin 发布版本

跑步:

mvn -Prelease release:prepare

产生这个输出:

[INFO] ------------------------------------------------------------------------
[INFO] Building xxxxx 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-release-plugin:2.4.1:prepare (default-cli) @ xxxxx ---
[INFO] Resuming release from phase 'scm-commit-release'
[INFO] Checking in modified POMs...
[INFO] Executing: cmd.exe /X /C "git add -- pom.xml"
[INFO] Working directory: C:\Users\jbr\git\yyyyyyyyyyyyyyy
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.770 s
[INFO] Finished at: 2015-09-12T20:17:24+02:00
[INFO] Final Memory: 20M/989M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.1:prepare (default-cli) on project xxxxx: Unable to commit files
[ERROR] Provider message:
[ERROR] The git-add command failed.
[ERROR] Command output:
[ERROR] 'git' is not recognized as an internal or external command,
[ERROR] operable program or batch file.

绝对公平,我从不使用 windows shell 中的 git 命令,也从不设置 pageant.exe 的东西。(有关详细信息,请参阅“为什么 git 在 Windows 下无法记住我的密码”问题的答案</a>)。

我的第二个想法是使用maven-scm-provider-jgit不依赖于git命令行。

现在的输出是:

[INFO] ------------------------------------------------------------------------
[INFO] Building xxxxx 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-release-plugin:2.4.1:prepare (default-cli) @ xxxxx ---
[INFO] Change the default 'git' provider implementation to 'jgit'.
[INFO] Resuming release from phase 'scm-commit-release'
[INFO] Checking in modified POMs...
[INFO] push changes to remote... refs/heads/master:refs/heads/master
[INFO] fetch url: git@github.com:jmini/yyyyyyyyyyyyyyy.git
[INFO] push url: git@github.com:jmini/yyyyyyyyyyyyyyy.git
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.4.1:prepare (default-cli) on project xxxxx: An error is occurred in the checkin process: Exception while executing SCM command. JGit checkin failure! git@github.com:jmini/yyyyyyyyyyyyyyy.git: Auth fail -> [Help 1] 

好多了,但仍然没有运气。

我的猜测是未加载私钥和密码。我应该如何配置它们?


这个答案表明,对于某些 SCM 提供商,可以<servers>settings.xml. 存储库的域名应用作<id>. 根据在 中scm:git:ssh://git@bitbucket.org/{account}/{project}使用的最后一条评论<developerConnection>,此条目在settings.xml

<server>
  <id>bitbucket.org</id>
  <privateKey>/c/Users/neil.hunt/.ssh/id_rsa</privateKey>
</server>

JGit SCM 提供程序是否支持此构造?


在搜索“Auth failed”错误时,我发现了这个相关问题(plain JGit,no maven plugin):

您如何为 jgit 设置 jschconfigsessionfactory 的配置以便拉取和推送工作?

4

0 回答 0