2015-03-01 9 views
6

Ich benutzesbt kann nicht lokalen Repository von Resolver.file definiert finden()

name := "sbt-publish-test" 

version := "0.1-SNAPSHOT" 

publishTo := Some(Resolver.file("sbt-repo", file("/home/pishen/sbt-repo"))) 

und sbt publish mein Projekt in das Verzeichnis zu veröffentlichen.

Jetzt in einem anderen Projekt möchte ich das Projekt, das ich gerade veröffentlicht habe, lösen. Ich verwende

resolvers += "my-repo" at "file:///home/pishen/sbt-repo" 

libraryDependencies += "default" %% "sbt-publish-test" % "0.1-SNAPSHOT" 

und ist in der Lage, das Projekt ohne Fehler zu lösen. Das Ergebnis show resolvers ist:

> show resolvers 
[info] List(my-repo: file:///home/pishen/sbt-repo) 

Aber, wenn ich

resolvers += Resolver.file("my-repo", file("/home/pishen/sbt-repo")) 

libraryDependencies += "default" %% "sbt-publish-test" % "0.1-SNAPSHOT" 

Das Ergebnis show resolvers verwenden werden:

> show resolvers 
[info] List(FileRepository(my-repo,FileConfiguration(true,None),Patterns(ivyPatterns=List(), artifactPatterns=List(/home/pishen/sbt-repo/[organisation]/[module](_[scalaVersion])(_[sbtVersion])/[revision]/[artifact]-[revision](-[classifier]).[ext]), isMavenCompatible=true, descriptorOptional=false, skipConsistencyCheck=false))) 

und sbt sagte, dass es nicht die Abhängigkeit auflösen kann, wenn Ich tippte sbt update:

[warn] module not found: default#sbt-publish-test_2.10;0.1-SNAPSHOT 
[warn] ==== local: tried 
[warn] /home/pishen/.ivy2/local/default/sbt-publish-test_2.10/0.1-SNAPSHOT/ivys/ivy.xml 
[warn] ==== public: tried 
[warn] https://repo1.maven.org/maven2/default/sbt-publish-test_2.10/0.1-SNAPSHOT/sbt-publish-test_2.10-0.1-SNAPSHOT.pom 
[warn] ==== my-repo: tried 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] ::   UNRESOLVED DEPENDENCIES   :: 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 
[warn] :: default#sbt-publish-test_2.10;0.1-SNAPSHOT: not found 
[warn] :::::::::::::::::::::::::::::::::::::::::::::: 

Ist das ein Fehler? Oder verwende ich Resolver.file() falsch? Was ist der Unterschied zwischen "name" at "url" und Resolver.file()? Ich benutze sbt 0.13.7.

+0

Dies könnte helfen: https://github.com/sbt/sbt/issues/1917 –

Antwort

1

Mein Verdacht ist, dass, wenn Sie Resolver.file in diesem Kontext verwenden, es eher ein "Builder" -Ersteller sein soll, erwartet nachfolgende Methodenaufrufe zum Ausfüllen zusätzlicher Konfigurationsinformationen, die unterschiedliche Standards bei der Verwendung der Syntax haben.

Die sbt ScalaDoc for Resolver.file.apply spielt auf etwas in dieser Richtung:

Konstruiert eine Datei Resolver mit dem angegebenen Namen. Die zu verwendenden Muster müssen explizit mit den Methoden ivys oder artifacts des konstruierten Resolver-Objekts angegeben werden.

Wenn ich etwas getan habe, ähnlich dem, was Sie tun, beginne ich mit einem File und verwenden seine API in die URI Form zu konvertieren:

resolvers += "my-repo" at file("/home/pishen/sbt-repo").toURI.toASCIIString 
Verwandte Themen