2013-01-15 16 views
8

Wann publish-local in sbt versuchen, erhalte ich die folgende Ausgabe:sbt local: Nicht definiert Resolver ‚local‘

[info] :: delivering :: com.mycompany#util_2.9.1;0.1.0-SNAPSHOT :: 0.1.0-SNAPSHOT :: integration :: Tue Jan 15 11:23:01 CET 2013 
[info] delivering ivy file to /Users/martink/code/my-project/util/target/scala-2.9.1/ivy-0.1.0-SNAPSHOT.xml 
[trace] Stack trace suppressed: run last my-util/*:publish-local for the full output. 
[error] (my-util/*:publish-local) Undefined resolver 'local' 

Ich vermute, das wegen einiger Einstellungen in meinem Build-Datei ist, weil veröffentlichen lokale Werke neue Projekte. Irgendwelche Ideen, wie man publish-local wieder arbeiten lässt?

Antwort

11

Wir fanden heraus, das Problem durch zwingende external-resolvers verursacht wurde:

diese
val myRepo = "my-public" at "http://my-nexus-server/content/groups/public/" 
externalResolvers := Seq(publicRepo) 

Wir haben die Standard-Maven zentralen Repository von unserem Resolvern auszuschließen. Dies entfernte jedoch auch den lokalen Resolver, der von publish-local verwendet wird.

Die Lösung war die lokalen Resolver hinzufügen zurück:

val ivyLocal = Resolver.file("local", file(Path.userHome.absolutePath + "/.ivy2/local"))(Resolver.ivyStylePatterns) 
externalResolvers := Seq(ivyLocal, myRepo) 

Eine andere Lösung nicht externalResolvers außer Kraft gesetzt wäre, sondern nur Maven zentrale zu deaktivieren.

resolvers := Seq(myRepo) 
externalResolvers <<= resolvers map { rs => 
    Resolver.withDefaultResolvers(rs, mavenCentral = false) 
} 

Sobald Sie publish-local scheint Ivy bevorzugt die lokale Snapshot-Version über Remote-Snapshot-Versionen zu geben. Um Ihr veröffentlichtes Artefakt von einem anderen Projekt aufnehmen zu lassen, führen Sie einfach sbt compile in diesem Projekt aus (anscheinend ist sbt update nicht einmal notwendig).

Siehe auch http://www.scala-sbt.org/release/docs/Detailed-Topics/Library-Management.html

+2

Sie auch in übergeordnete Repositories auf Benutzerebene interessiert sein könnte: http://www.scala-sbt.org/release/docs/Detailed-Topics/Proxy-Repositories.html. –