2012-06-05 8 views
6

muszę określić jako zależność następujące biblioteki:play ramy i SBT: przechodzącą poświadczeń do passowrd nexus chronionego repo

url: http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/

użytkownik: testmx

wprost: testmx @ testmx

GroupID: testmx

artifactId: testmxcommons

wersja: 1.0.0-SNAPSHOT

Więc zdefiniowane następujące projekt/Build.scala

import sbt._ 
import Keys._ 
import PlayProject._ 

object ApplicationBuild extends Build { 

    val appName   = "testmxproject" 
    val appVersion  = "1.0-SNAPSHOT" 

    val appDependencies = Seq(
     "mysql" % "mysql-connector-java" % "5.1.18", 
     "testmx" % "testmxcommons" % "1.0.0-SNAPSHOT" 
    ) 

    val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
     credentials += ("testmx public", "deploy.cloud.testmx.com:8081", "testmx", "[email protected]"), 
     resolvers += "testmx public" at "http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/" 
    ) 

} 

i pojawia się następujący błąd:

[warn] module not found: testmx#testmxcommons;1.0.0-SNAPSHOT 

[warn] ==== testmx public: tried 
[warn] http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/testmx/textmxcommons/1.0.0-SNAPSHOT/textmxcommons-1.0.0-SNAPSHOT.pom 

Próbowałem kilka alternatyw ale daj mi ten sam błąd ...

Sprawdziłem this article i to SO question

Próbowano również zapisać użytkownika i hasło na zewnętrznym pliku, jak to wyjaśniono here i here.

jakiś pomysł?

- edycja wyjaśnienie -

Zmieniłem prawdziwy adres URL, ponieważ nie jest to repo publicznego pracuję z ... Prawdziwy url jest tam i pom że SBT próbuje znaleźć nie istnieje ...

ps: BTW .. gdzie są skaladocs sbt ???

+0

cóż, przynajmniej znalazłem skaladoki sbt: http://harrah.github.com/xsbt/latest/api/index.html#package – opensas

+0

"credentials + = (" shouldn Zastąpi go "poświadczenia + = Poświadczenia (" prawda? – raisercostin

Odpowiedz

6

Wystąpiły dwa problemy podczas przekazywania poświadczeń.

Po pierwsze, przekazałem złe Królestwo. (Podziękowania dla Alexa Varju za to)

Musisz przejść to samo Królestwo, które serwer wysyła podczas próby zalogowania się (Wystarczy nacisnąć ctrl-shift-I lub F12 na chromie i przejść do sieci, aby rzucić okiem na nim)

Drugi problem polega na tym, że podawałem numer portu, a sbt nie wydaje się to lubić ...

Tak, w końcu zrobiłem to w ten sposób i to działa ok:

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings(
    credentials += ("Sonatype Nexus Repository Manager", "deploy.cloud.testmx.com", "testmx", "[email protected]"), 
    resolvers += "testmx public" at "http://deploy.cloud.testmx.com:8081/nexus/content/groups/public/" 
) 

ustawieniach poświadczeń w innym pliku, zgodnie z oczekiwaniami, pracował ok zbyt tymi samymi modyfikacjami ...

Dziękuję wszystkim za twoje odpowiedzi

+1

Po prostu powtarzam innym, którzy przychodzą. Jak powiedzieli inni, upewnijcie się, że wasze Królestwo ma rację. –

+0

Dla mnie działało to tylko po czystej grze – Valentin

11

Trzeba powiedzieć SBT co repozytorium chcesz opublikować:

publishTo := Some("testmx public" at "http://deploy.cloud.testmx.com:8081/nexus") 

Dodatkowo, jeśli nie chcesz zachować swoje dane w pliku budowy, można powiedzieć to, aby je odzyskać lokalnie przez dodanie linia:

credentials += Credentials(Path.userHome/".ivy2"/".credentials"), 

a w katalogu ~/.ivy2 utworzyć plik .credentials takiego:

realm=Sonatype Nexus Repository Manager 
host=deploy.cloud.testmx.com 
user=testmx 
[email protected] 

Aby uzyskać więcej informacji, zobacz https://github.com/harrah/xsbt/wiki/Publishing

+0

dzięki bardzo dużo albo twoja odpowiedź manuel, próbowałem tego, co powiedziałeś, ale wciąż dostaję ten sam błąd, jakikolwiek sposób debugowania sbt, aby wiedzieć, jakie dane uwierzytelniające są przekazywane? – opensas

+2

Miałem podobny problem dzisiaj i odkryłem, że Wireshark jest skutecznym sposobem sprawdzenia, co dzieje się na poziomie sieci. W moim przypadku nie ustawiłem atrybutu Realm na "Sonospe Nexus Repository Manager", więc żadne hasło nie zostało wysłane. –

+0

Masz rację Alex, przechodziłem przez niewłaściwe królestwo, które powinno być "Menedżerem repozytorium Sonatype Nexus", ale nadal mam ten sam błąd ... spróbuję z wireshark ... – opensas

Powiązane problemy