Gradle uploadArchives через scp запрашивает кратное количество раз
Я пробую Gradle и пытаюсь загрузить баночки в мой репозиторий Nexus с помощью Wagon SCP, как описано в руководстве пользователя Gradle. Я взял файл сборки, как указано в руководстве пользователя:
configurations {
deployerJars
}
repositories {
mavenCentral()
}
dependencies {
deployerJars "org.apache.maven.wagon:wagon-ssh:1.0-beta-2"
}
uploadArchives {
repositories.mavenDeployer {
name = 'sshDeployer' // optional
configuration = configurations.deployerJars
repository(url: "scp://repos.mycompany.com/releases") {
authentication(userName: "me", password: "myPassword")
}
}
}
(Конечно, за исключением того, что URL и учетные данные адаптированы к моему репо.)
Теперь при запуске gradle uploadArchives сборка останавливается через некоторое время. Я отменил сборку и перезапустил ее с включенной регистрацией информации и обнаружил, что скрипт запрашивает у меня пароль:
gradle -i uploadArchives
Starting Build
Settings evaluated using empty settings file.
Projects loaded. Root project using build file '/Users/developer/Slask/ex24/build.gradle'.
Included projects: [root project 'ex24']
Evaluating root project 'ex24' using build file '/Users/developer/Slask/ex24/build.gradle'.
All projects evaluated.
Selected primary task 'uploadArchives'
Tasks to be executed: [task ':compileJava', task ':processResources', task ':classes', task ':jar', task ':uploadArchives']
:compileJava
Executing task ':compileJava' due to:
No history is available for task ':compileJava'.
[ant:javac] Compiling 1 source file to /Users/developer/Slask/ex24/build/classes/main
[ant:javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
[ant:javac] 1 warning
:processResources
Skipping task ':processResources' as it has no source files.
:processResources UP-TO-DATE
:classes
Skipping task ':classes' as it has no actions.
:jar
Executing task ':jar' due to:
No history is available for task ':jar'.
:uploadArchives
Task ':uploadArchives' has not declared any outputs, assuming that it is out-of-date.
Publishing configuration: configuration ':archives'
:: loading settings :: url = jar:file:/usr/local/Cellar/gradle/1.0-milestone-7/libexec/lib/ivy-2.2.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
Publishing to Resolver org.gradle.api.publication.maven.internal.ant.DefaultGroovyMavenDeployer@53c0f47a
[ant:null] Deploying to scp://192.168.0.100/mynexusrepo
[INFO] Retrieving previous build number from remote
Password::
Очевидно, пароль, настроенный в сценарии сборки, игнорируется.
В любом случае, я ввел пароль, а затем мне несколько раз предложили, где я подчинился и повторно ввел пароль.
Наконец, сборка завершена успешно.
После этого я проверил репо, и артефакт был успешно загружен.
Итак, загрузка банок в репо работает.
Однако то, что программа Gradle запрашивает у меня пароль, не работает для меня, так как я планировал использовать это в процессе автоматической сборки с Jenkins.
СЕЙЧАС НА МОЙ ВОПРОС: Кто-нибудь знает, есть ли способ отключить этот запрос пароля?
1 ответ
Я не знаю, почему он запрашивает пароль. Это может быть что-то, чтобы исправить в более новой версии универсала. Я знаю, что вы можете использовать это, чтобы избежать необходимости в пароле:
repository(url: 'scp://example.com/var/repos') {
authentication(userName: "me", privateKey: "/home/me/.ssh/id_rsa")
}