2010-12-22 9 views
12

Ich versuche gerade, einen Maven Build in einen Gradle Build zu überführen. Die Show-Stopper-Hürde, die ich geschlagen habe, besteht darin, dass unsere internen Artefakte in einem internen Repository bereitgestellt werden, das Authentifizierung zum Lesen erfordert.Wie kann ich ein verschlüsseltes Passwort zu einem Maven Repository in Gradle verwenden?

Und Sie wissen, was Authentifizierung bedeutet ... Benutzernamen und Passwörter. Das Problem ist, ich möchte nicht verlangen, dass Entwickler ihr Passwort als Klartext auf ihren Festplatten speichern. Maven unterstützt password encryption, aber ich sehe nicht, wie man Gradle dazu bringt.

Gibt es einen magischen Zugang zum Ivy CredentialStore, der verschlüsselte Passwörter unterstützt? oder muss ich auf eine neue Version warten?

Antwort

9

Wir verwenden Artifactory und Ivys CredentialsStore funktioniert gut.

repositories { 
    org.apache.ivy.util.url.CredentialsStore.INSTANCE.addCredentials(REALM, HOST, USER, PASSWORD); 
    mavenRepo urls: [ "http://repo.mycompany.com/repo" ] 
} 

Jedem Entwickler einen anderen Benutzernamen erstellen gradle.properties-Datei verwenden, die

HOST=repo.mycompany.com 
REALM=My Company Realm 
USER=theusername 
PASSWORD={DESede}xyz123abc 

Das {DESede} verschlüsselte Passwort-Präfix ein Artifactory specific convention kann enthält.

+2

Das wäre nett, wenn ich Artefakt verwendet, aber meine Website verwendet Nexus. Irgendwelche generischen Lösungen? – shemnon

+0

Brian Fox sagte, dass sie die serverseitige verschlüsselte Passwort-Unterstützung für Nexus unter http://jira.codehaus.org/browse/MNG-4626 hinzufügen würden. –

+3

Nexus verfügt über eine Benutzer-Token-Funktion, die Benutzernamen und Passwort ersetzen kann muss es verschlüsseln. Verwenden Sie einfach das oben genannte mit dem unverschlüsselten Token –

Verwandte Themen