SBT ist nicht zu finden Anmeldeinformationen beim download von einem Artifactory virtuellen repo
Ich versuche zu laufen SBT hinter einer Unternehmens-firewall. Ein anderes team konfiguriert hat ein Artifactory proxy. Dieser proxy funktioniert gut mit den anonymen Zugriff eingeschaltet ist, aber wenn wir es machen, benötigen Sie ein Passwort denkt, anfangen schief zu gehen.
Wenn ich laufen SBT auf meinem Arbeitsplatz, bekomme ich folgenden Fehler:
[error] Unable to find credentials for [Artifactory Realm @ coderepo.xxx.amrs.bigco.com]
Das Ergebnis davon ist, dass ich nicht bootstrap sbt:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.scala-lang#scala-library;2.10.6: not found
[warn] :: org.scala-sbt#sbt;0.13.12: not found
[warn] :: org.scala-lang#scala-compiler;2.10.6: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
Habe ich versucht, indem Sie eine .credentials-Datei in ~/.sbt und auch ~/.ivy2: ich habe getestet, Variationen über die folgende, die alle nicht funktionieren:
realm=Artifactory Realm @ coderepo.xxx.amrs.bigco.com
host=coderepo.xxx.amrs.bigco.com
user=<username>
password=<pwd>
Ich vermute, dass diese Fehlermeldung bedeutet, es wurde nicht gefunden Anmeldeinformationen definition, der auf das Reich, also habe ich versucht eine Reihe von Versionen, von der ersten Zeile an beiden Standorten:
realm=Artifactory Realm
realm=[Artifactory Realm @ coderepo.xxx.amrs.bigco.com]
realm=coderepo.xxx.amrs.bigco.com
Keiner von denen zu haben scheinen, wirkt.
Also, was ist die richtige Art und Weise zu ermöglichen, SBT, um die Authentifizierung mit Benutzername & Passwort, um ein Passwort geschützt Artifactory repository?
UPDATE0: Nach der Efeu-Dokumentation, die am ehesten realm-name ist einfach "Artifactory Reich". Nach der SBT-Dokumentation, die korrekte Standard-Speicherort der credentials-Datei %USERPROFILE%/.sbt/.Anmeldeinformationen (ja, ich verwende Windows). Auch nach dem löschen der .credentials-Datei in meine .ivy2 Verzeichnis, es funktioniert immer noch nicht.
UPDATE1: Relevant, aber nicht wirklich hilfreich:
- SBT nicht übergeben der Anmeldeinformationen bei der Veröffentlichung zu Artifactory
- Sbt kann nicht ermächtigen, in Artifactory
UPDATE2: ich beginne zu vermuten, dass dies einen Fehler in der sbt - ich habe ein Problem hier: https://github.com/sbt/sbt/issues/2817
InformationsquelleAutor Salim Fadhley | 2016-10-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen diese Frage für details auf, wie zu konfigurieren globaler Anmeldeinformationen.
Zusammenfassen:
Wenn Sie brauchen, um boot-SBT von einem proxy-repository, stellen Sie die Eigenschaft system
sbt.boot.credentials
auf Ihre credentials-Datei. Sie können dies tun, in Ihrem%CSIDL_PROGRAM_FILESX86%/sbt/conf/sbtconfig.txt
zum Beispiel:Alternativ können Sie die
SBT_CREDENTIALS
Umgebungsvariable für den gleichen Zweck.Für Artifactory, dem Reich, in das
credentials
Datei sollte festgelegt werden:Zur Authentifizierung Abhängigkeit Artefakt abrufen, erstellen Sie eine Datei wie
%USERPROFILE%/.sbt/0.13/plugins/my-credentials.sbt
mit einemcredentials
Einstellung. Zum Beispiel:export SBT_CREDENTIALS=some_credentials; sbt publish
ist nicht genug. was Sie brauchen, ist 1)credentials += Credentials(file("some_credentials"))
imbuild.sbt
. oder 2)credentials += Credentials(Path.userHome / ".sbt" / ".credentials")
im~/.sbt/1.0/plugins/credentials.sbt
Oh, Sie wirklich mich gerettet! Alle docs sind einfach falsch.
froh zu helfen. dies könnte ebenfalls hilfreich sein, "veröffentlichen", einem scala-app mit Zugangsdaten?
InformationsquelleAutor Olli Helenius
Ich denke, dass der Standardspeicherort für diese Datei ist
${HOME}/.sbt/<sbt-version>/.credentials
; während ich Vertrauen, da ist veröffentlichte Dokumentation, die auf dieser, ich bestätigte dies, indem man um in den code.@salim-fadhley, sieht aus wie Sie sind, fehlt die SBT-version in den Pfad.
Speicherort der Datei beiseite, es scheint eine Verwirrung zwischen den repository-Namen (bedeutet nichts) vs. security realms (meine alles).
Den auth-Herausforderung, der kommt zurück aus dem repository server wird der name des Sicherheit Reich; als Bauherr/Entwickler, Sie haben keine Kontrolle über das, was es ist, und meine Vermutung ist, es muss mit der Reich Sie (Bauherr/Entwickler) geben Sie bei Ihrer
.credentials
Datei (wo auch immer das ist).Inzwischen den repository-Namen (als featured in
build.sbt
) bedeutet eigentlich nichts zu jedermann außerhalb die Entwicklung des entsprechenden Projektes wie z.B. die repository-server-admins konnten sich nicht sorgen, von einem Projekt zum nächsten.InformationsquelleAutor Darren Bishop