2013-01-15 49 views
8

जब एसबीटी में publish-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' 

मुझे लगता है इस वजह से अपने निर्माण फाइल में कुछ सेटिंग्स की वजह से प्रकाशित-स्थानीय पर काम करता है ताजा परियोजनाएं publish-local फिर से काम करने के तरीके पर कोई विचार?

उत्तर

11

हम पता चला समस्या external-resolvers अधिभावी की वजह से किया गया था:

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

हम ऐसा किया हमारे रिसोल्वर से डिफ़ॉल्ट Maven केंद्रीय भंडार बाहर करने के लिए। हालांकि, स्थानीय रिज़ॉल्वर को भी हटा दिया गया है जिसका प्रयोग publish-local द्वारा किया जाता है।

समाधान स्थानीय समाधानकर्ता वापस जोड़ने के लिए किया गया था:

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

एक अन्य समाधान externalResolvers पर हावी नहीं है, लेकिन सिर्फ Maven केंद्रीय को निष्क्रिय किया जाएगा।

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

एक बार जब आप publish-local, आइवी दूरस्थ स्नैपशॉट संस्करणों के ऊपर स्थानीय स्नैपशॉट संस्करण को वरीयता देने के लिए लगता है। किसी अन्य प्रोजेक्ट द्वारा आपके प्रकाशित आर्टिफैक्ट को चुनने के लिए, उस प्रोजेक्ट में केवल sbt compile चलाएं (ऐसा लगता है कि sbt update भी आवश्यक नहीं है)।

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

+2

देखें तुम भी उपयोगकर्ता के स्तर पर खजाने अधिभावी में रुचि हो सकती: http://www.scala-sbt.org/release/docs/Detailed-Topics/Proxy-Repositories.html। –