2012-05-27 9 views
61

है मुझे अपने स्थानीय शोज़गार में एक मैवेन निर्भरता के साथ समस्याएं आ रही हैं।एसबीटी को स्थानीय मैवेन रिपोजिटरी में फ़ाइल नहीं मिलती है, हालांकि यह

एसबीटी इसे नहीं ढूंढ सकता। डीबग करने के लिए पहले से ही लॉग स्तर सेट करें, लेकिन कुछ नया नहीं मिल रहा है।

फ़ाइलें भंडार में हैं। मैं कंसोल से पेस्ट पथ को फाइल एक्सप्लोरर में कॉपी करता हूं और वे वहां हैं।

उत्पादन:

[debug]   trying file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.pom 

[debug]     tried file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.pom 

[debug]   Local Maven Repository: resource not reachable for com/twitter#naggati;2.0.0: res=file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0 
.0/naggati-2.0.0.pom 

[debug]   trying file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.jar 

[debug]     tried file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.jar 

[debug]   Local Maven Repository: resource not reachable for com/twitter#naggati;2.0.0: res=file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0 
.0/naggati-2.0.0.jar 

[debug]   Local Maven Repository: no ivy file nor artifact found for com.twitter#naggati;2.0.0 

संपादित करें: मैं इस परियोजना में स्केला फ़ाइल का उपयोग/ निर्माण http://code.google.com/p/simple-build-tool/wiki/LibraryManagement

"एसबीटी में वर्णित की तरह अपने स्थानीय Maven भंडार खोज यदि आप के रूप में यह जोड़ सकते हैं पथ जोड़ा एक भंडार: "

val mavenLocal = "Local Maven Repository" at "file://"+Path.userHome+"/.m2/repository" 

जिसने स्थानीय भंडार में एसबीटी देखा। इससे पहले कि नहीं।

तो स्केला फ़ाइल इस तरह दिखता है:

import sbt._ 

class Foo(info: ProjectInfo) extends DefaultProject(info) { 

val mavenLocal = "Local Maven Repository" at "file://c:/Users/userz/.m2/repository" 

} 

(मैं Path.userHome hardcoded संभावित त्रुटि कारण बाहर करने के लिए उम्मीद थी कि यह कुछ भी नहीं बदला।)।

+0

आप अपने build.sbt – leedm777

+0

भंडार जोड़ा जाता है करने के लिए स्थानीय Maven रेपो जोड़ने के लिए, नहीं तो स्क्रिप्ट फ़ाइलें के लिए वहाँ नहीं लग रही होगी। – Ixx

+0

आपकी निर्भरता को देखने के लिए एसबीटी को बताए जाने वाली रेखा कैसी है? यदि आपके पास कुछ ऐसा है ... -> डिफ़ॉल्ट, वहां से डिफ़ॉल्ट हटाएं। – fmpwizard

उत्तर

57

file: विनिर्देशक के बाद आपको तीन स्लेश की आवश्यकता है। ऐसा इसलिए है क्योंकि दूसरे और तीसरे स्लैश के बीच, आपके पास एक वैकल्पिक होस्टनाम है। Wikipedia का एक अच्छा व्याख्या है file: यूआरएल

आप कोई समस्या आ रही है क्योंकि "file://"+Path.userHome+"/.m2/repository" के विशिष्ट पैटर्न एक यूनिक्स फाइल सिस्टम है, जहां पथ एक / साथ शुरू होता है मान लिया गया है, कोई : होते हैं, और आम तौर पर कोई रिक्त स्थान शामिल हैं।

"Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository" 
+0

परियोजनाओं को परिभाषित और परियोजना में जोड़ने के साथ नहीं, – pferrel

+0

मैक पर मेरी समस्या हल नहीं करता है। – Daniel

21

इस, एसबीटी के नए संस्करणों के लिए काम build.sbt के लिए निम्न जोड़ने के लिए प्राप्त करने के लिए:

एक गैर hardcoded रास्ता है कि दोनों Windows और लिनक्स/यूनिक्स, उपयोग पर काम करता है के लिए

resolvers += "Local Maven Repository" at "file:///"+Path.userHome+"/.m2/repository" 
+1

3 स्लेश ने चाल की! – Esk

+1

कोई फर्क नहीं पड़ता जब एसबीटी कर संकलन है कि मैं क्या मैं अब भी यह त्रुटि प्राप्त करते हैं: [चेतावनी दी है] :::::::::::::::::::::::::::::: :::::::::::::::: [चेतावनी दी है] :: अनसुलझे DEPENDENCIES :: [चेतावनी दी है] :::::::::::::::::::: :::::::::::::::::::::::::: [चेतावनी दी है] :: com.sanoma.cda # मैक्समाइंड-geoip2-scala_2.11; 1.3.2: नहीं मिला [चेतावनी दी है] :::::::::::::::::::::::::::::::::::::::::::: :: [ट्रेस] स्टैक ट्रेस दबाया गया: अंतिम रन * पूर्ण आउटपुट के लिए अपडेट करें। [त्रुटि] (*: अद्यतन) sbt.ResolveException: अनसुलझा निर्भरता: com.sanoma.cda # maxmind-geoip2-scala_2.11; 1.3.2: नहीं मिला – bashan

+1

मेरे लिए काम नहीं करता – pferrel

110

बस build.scala या build.sbt फ़ाइल में इस लाइन को जोड़ने के

resolvers += Resolver.mavenLocal 
+1

यह मेरे लिए काम नहीं करता है नवीनतम एसबीटी के साथ। – Dyin

+2

वह कौन सा एसबीटी है? मैंने इसे 0.13.11 के साथ उपयोग किया और यह ठीक काम करता है। – marios

+0

परियोजनाओं के साथ नहीं ग्लोबल में परिभाषित – pferrel

3

देखो बाहर आप एक जनसंपर्क है जब निष्कर्ष निकाला गया है, आपको सेटिंग्स में रिज़ॉल्वर को शामिल करने की आवश्यकता होगी। वैश्विक रिज़ॉल्यूवर की पहचान नहीं की जाएगी।

उदाहरण:

lazy val core = (project in file("core")). 
    settings(commonSettings: _*). 
    settings(
    resolvers += Resolver.mavenLocal, 
    name := "Core", 
    libraryDependencies := coreDependencies 
) 
+0

मेरे लिए काम नहीं करता है, हालांकि यह परियोजनाओं – pferrel

+1

धन्यवाद dyin के साथ कुछ हो सकता है, यह काम किया। सामान्य सेटिंग्स में संकल्प जोड़ा गया, अब सभी परिभाषित परियोजनाएं निर्भरता के लिए स्थानीय मैवेन रेपो में देख सकती हैं। – raevilman

संबंधित मुद्दे