Estou tentando implantar um artefato construído pelo Gradle em um repositório Maven e preciso especificar credenciais para isso. Isso funciona bem por enquanto:
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://.../nexus/content/repositories/snapshots/") {
authentication(userName: "admin", password: "admin123")
}
}
}
}
Mas não gosto de ter que armazenar as credenciais no controle de origem. Com o Maven, eu definiria uma configuração do servidor e atribuiria credenciais no meu ~/.m2/settings.xml
. Como faço algo semelhante com Gradle?
Respostas:
~ / .gradle / gradle.properties :
build.gradle :
fonte
gradle.properties
Não deve fazer check-in noVCS
?A primeira resposta ainda é válida, mas a API mudou no passado. Como minha edição não foi aceita, eu a postei como resposta separada.
O método
authentication()
é usado apenas para fornecer o método de autenticação (por exemplo, Básico), mas não nenhuma credencial.Você também não deve usá-lo, pois está imprimindo as credenciais sem problemas!
É assim que deve parecer no seu
build.gradle
Em
gradle.properties
em seu dir dirhome do usuário:Verifique também se o arquivo
GRADLE_USER_HOME
está definido para~/.gradle
o arquivo de propriedades que não será resolvido.Veja também:
https://docs.gradle.org/current/userguide/build_environment.html
e
https://docs.gradle.org/current/userguide/dependency_management.html (23.6.4.1)
fonte
maven-publish
plug - in enquanto a pergunta está usando omaven
plug - in.Você também pode fornecer variáveis na linha de comando
-PmavenUser=user -PmavenPassword=password
.Pode ser útil que você não possa usar um arquivo gradle.properties por algum motivo. Por exemplo, em um servidor de compilação, estamos usando o Gradle com a
-g
opção para que cada plano de compilação tenha o seu próprioGRADLE_HOME
.fonte
Se você tiver credenciais específicas do usuário (ou seja, cada desenvolvedor pode ter nome de usuário / senha diferentes), recomendo o uso do plugin gradle-properties-plugin .
gradle.properties
gradle-local.properties
(isso deve ser ignorado pelo git).É melhor do que substituir usando
$USER_HOME/.gradle/gradle.properties
porque projetos diferentes podem ter os mesmos nomes de propriedades.fonte
build.gradle
. Como usar credenciais nauploadArchives
configuração?Você pode colocar as credenciais em um arquivo de propriedades e lê-lo usando algo como isto:
Outra abordagem é definir variáveis de ambiente no nível do SO e lê-las usando:
fonte
Para aqueles que estão construindo em um MacOS e não gostam de deixar sua senha em texto não criptografado em sua máquina, você pode usar a ferramenta de chaveiro para armazenar as credenciais e injetá-la na compilação. Os créditos vão para Viktor Eriksson. https://pilloxa.gitlab.io/posts/safer-passwords-in-gradle/
fonte