Использование maven-scm-plugin с git без сохранения пароля в открытом тексте
Мне нужно использовать maven-scm-plugin для экспорта / извлечения (ветка по умолчанию) хранилища на github. Я могу заставить это работать, если я жестко закодирую где-нибудь имя пользователя / пароль, но не могу заставить его использовать ssh-ключи или менеджер паролей локальной файловой системы.
В командной строке я могу сделать "git clone git@github.com:org/repo" или "git clone https://github.com/org/repo ", и он будет завершен без необходимости повторного ввода вручную Имя пользователя / пароль.
В моем плагине у меня может быть connectionUrl быть scm: git: https://github.com/org/repo "и я могу передать"-Dusername=foo -Dpassword=bar". Но тогда где-то мне нужно иметь имя пользователя / пароль (foo/bar) где-нибудь в открытом тексте.
Я видел совет, как поместить его в файл setting.xml, передать их в виде аргументов и поместить их в файл pom. И я нахожу доказательства того, что ssh-соединения поддерживаются. Но я не могу найти фактическое использование ssh-соединения или https-соединения, где у вас где-то нет пароля в виде простого текста. Любой совет?
Я получил следующее для работы (если я передам -Dusername= -Dpassword=):
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.9.4</version>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>checkout</goal>
</goals>
<id>perform-export</id>
<configuration>
<!-- Would be happy to get rid of provider -->
<providerImplementations>
<git>jgit</git>
</providerImplementations>
<!--
Want to use ssh, but cannot
<connectionUrl>scm:git:ssh://github.com/org/repo</connectionUrl>
-->
<connectionUrl>scm:git:https://github.com/org/repo</connectionUrl>
<exportDirectory>target</exportDirectory>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jgit</artifactId>
<version>1.9.4</version>
</dependency>
</dependencies>
1 ответ
Вы можете поставить пароль на свой ~/.netrc
файл:
machine github.com login john.smith password mypass