Я надеюсь, что кто-то может помочь с этим.Я пытаюсь настроить плагин mvn release
в pom.xml
так, чтобы обновленная версия pom и тег помещались в git-репозиторий как часть release:prepare
.Важно отметить, что необходимо использовать закрытый ключ ssh определенного пользователя , поскольку в конечном итоге это будет частью нашего стека CI.
В pom.xml
в настоящее время у меня очень простая конфигурациядля плагина релиза:
<build>
<plugins>
<!-- release plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
</plugin>
Настройки scm
в pom выглядят так:
<scm>
<connection>scm:git:git://ssh@bitbucket.org/**account**/**project**.git</connection>
<developerConnection>scm:git:ssh://git@bitbucket.org/**account**/**project**.git</developerConnection>
<url>https://bitbucket.org/**account**/**project**</url>
</scm>
И у меня есть следующее свойство в pom (хотя и не уверен, что этоиспользуется или нет - я нашел ссылку на него из-за слабой проблемы):
<properties>
<project.scm.id>bitbucket.org</project.scm.id>
Наконец, у меня в mvn settings.xml
есть следующее:
<servers>
<server>
<id>bitbucket.org</id>
<privateKey>~/.ssh/bitbucket-read-write-access</privateKey>
<passphrase></passphrase>
</server>
Закрытый ключфайл ~/.ssh/bitbucket-read-write-access
существует, и в этой папке нет других ключей (я намеренно удалил значение по умолчанию id_rsa
)
Когда я запускаю mvn release:perform
, он не работает, когда пытается перейти в репозиторий:
[INFO] Executing: /bin/sh -c cd /home/nathanrussell/projects/**project** && git push ssh:********@bitbucket.org/**account**/**project**.git refs/heads/master:refs/heads/master
[INFO] Working directory: /home/nathanrussell/projects/**project**
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.162 s
[INFO] Finished at: 2018-11-09T15:25:36Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:prepare (default-cli) on project **project**: Unable to commit files
[ERROR] Provider message:
[ERROR] The git-push command failed.
[ERROR] Command output:
[ERROR] git@bitbucket.org: Permission denied (publickey).
[ERROR] fatal: Could not read from remote repository.
[ERROR]
[ERROR] Please make sure you have the correct access rights
[ERROR] and the repository exists.
Единственный способ заставить его нажать правильно, это переименовать файл ~/.ssh/bitbucket-read-write-access
в ~/.ssh/id_rsa
, что заставляет меня поверить, что:
- Пользователь, связанныйс закрытым ключом имеет правильные права на репо и открытый ключ правильно задociated с пользователем репо
- Моя конфигурация
pom.xml
и / или settings.xml
не совсем верна в отношении выбора / использования желаемого закрытого ключа
(Перед кем-либопредполагает, что я не могу просто переименовать ключ на ~/.ssh/id_rsa
, потому что когда мы запускаем его в стеке CI, у него уже есть ssh-ключ по умолчанию для другой цели)
Любые мысли или помощь по этому поводу были бы оченьпризнателен
Некоторая дополнительная информация:
Если я сделаю export GIT_SSH_COMMAND="ssh -i ~/.ssh/bitbucket-read-write-access"
, тогда git push
, это подтолкнет нормально, что еще больше заставляет меня думать, что закрытый / открытый ключ правильно настроен;и это неправильная конфигурация mvn.