Я использую «mavenDeployer» для использования ssh/scp во время задачи «uploadArchives» с утилитами wagon ssh.
Вместо того, чтобы кодировать пароль в build.gradle, я хотел бы полагаться на правильную настройку ssh. В частности, я хочу, чтобы пользователь указал свой закрытый ключ и загрузил этот закрытый ключ в свою среду (ssh-agent, ssh-add и т. д.). Репозиторий maven имеет общий идентификатор пользователя, и у всех реальных пользователей их ключ .pub правильно добавлен в файл «authorized_keys» общего идентификатора пользователя.
Хотя у maven/ant, похоже, есть атрибут «privateKey», и Gradle DSL принимает его, похоже, он не имеет никакого эффекта, когда я его устанавливаю:
mavenDeployer {
configuration = pr.configurations.publishJars
String keyFile = System.properties["user.mavenKey"]
repository(url: "scp://maven.company.com/path/to/maven") {
logger.info("Using SSH key: ${keyFile}")
authentication(userName: "maven", privateKey: keyFile)
}
Если я ввожу фактический пароль в соответствии с примером в документации Gradle, он действительно работает, поэтому я знаю, что все работает. Кроме того, изменение privateKey на privatekey (все в нижнем регистре) вызывает ошибку свойства, поэтому я знаю, что свойство существует и распознается на каком-то уровне.
И я знаю, что сам ключ ssh работает:
% ssh -i ~/.ssh/mavenKey [email protected] ls /
[ no errors, output trimmed ]
Но когда я запускаю его, мне предлагается ввести общий пароль пользователя:
% gradle uploadArchives
[... stuff ...]
Using SSH key: /homes/klash/.ssh/mavenKey
Password for [email protected]:
Как видите, он НЕ запрашивает парольную фразу для ключа.
Using SSH key: /homes/klash/.ssh/mavenKey
Нет ли опечатки в свойстве System? Вероятно, должно быть/home/klash/...
- person Hiery Nomus   schedule 26.03.2013