2011-08-04 10 views
5

डिफ़ॉल्ट रूप से, स्कैला बिल्ट टूल (एसबीटी) में निर्भरता की तलाश करते समय URL उत्पन्न करने के नियमों का एक सेट है। उदाहरण के लिए, अगर मैं निम्नलिखित निर्माण फ़ाइल है,मैवेन रिपॉजिटरीज़ के लिए यूआरएल उत्पन्न करने पर एसबीटी के नियमों को कैसे बदला जाए?

// Project settings 
name := "MyProject" 

version := "0.1" 

organization := "com.me" 

scalaVersion := "2.8.1" 

// Dependencies 
libraryDependencies ++= Seq(
    "com.google.guava" %% "guava" % "r09" 
) 

// Repositories 
resolvers += "Maven Central Server" at "http://repo1.maven.org/maven2" 

फिर एसबीटी निम्न URL पर अमरूद को खोजने के लिए,

http://repo1.maven.org/maven2/com/google/guava/guava_2.8.1/r09/guava_2.8.1-r09.pom 

हालांकि, पुस्तकालय मैं इस मामले isn में तलाश कर रहा हूँ 'का प्रयास टी को भी स्कैला के लिए बनाया गया है, इसलिए स्कैला संस्करण का संयोजन सिर्फ यहां समझ में नहीं आता है। मैं एसबीटी को कैसे बता सकता हूं कि मैवेन रिपॉजिटरीज़ के उपयोग के लिए यूआरएल उत्पन्न करने के लिए प्रारूप क्या है?

संपादित

जबकि ऐसा लगता है कि यह बहुत की तरह लेआउट को संपादित करने के लिए संभव है,

Resolver.url("Primary Maven Repository", 
    new URL("http://repo1.maven.org/maven2/"))(Patterns("[organization]/[module]/[module]-[revision].[ext]")) 

"[मॉड्यूल]" कीवर्ड (विरूपण साक्ष्य आईडी) होने के लिए पूर्वनिर्धारित है _ (स्कैला संस्करण) और "[आर्टिफैक्ट]" कीवर्ड सिर्फ "ivy" है, जो मुझे स्क्वायर वन पर वापस छोड़ देता है।

उत्तर

9

जहाँ तक मुझे याद है के रूप में "%%" स्केला संस्करण और "%" संलग्न कर देता है नहीं करता है। अब

libraryDependencies ++= Seq(
    "com.google.guava" % "guava" % "r09" 
) 
+0

ऐसा लगता है ठीक है, हालांकि sbt v0.10.1 ~/.ivy2/cache/com.google.guava/guava/jars में जार को गहराई से छिपाने का विकल्प चुनता है, लेकिन यह एक अलग मुद्दा है। धन्यवाद! – duckworthd

+0

आप एसबीटी से पूछ सकते हैं ./lib_managed में जार। बस एसबीटी माइग्रेशन गाइड पर एक नज़र डालें। (मैंने कभी इसका इस्तेमाल नहीं किया है, इसलिए मुझे नहीं पता कि यह कहां है) – Jan

+0

पहले ही इसे मिला है। यह सब ले रहा है, "पुनर्प्राप्त करें प्रबंधित: = सत्य" – duckworthd

3

आधिकारिक sbt विकी here के अंतिम एक पैराग्राफ (कस्टम लेआउट) की जांच करें।

असल में एसबीटी आप इस सिंटैक्स का उपयोग करने की अनुमति देता है:

resolvers += Resolver.url("my-test-repo", url)(Patterns("[organisation]/[module]/[revision]/[artifact].[ext]")) 
+0

मृत लिंक ... :( –

+1

@OlivierGirardot धन्यवाद कोशिश करो! मैं इसे करने के लिए करने की तारीख संस्करण –

+0

@ ओम-nom-nom यू मुझे एक उदाहरण कैसे पैटर्न लिखने के लिए दे सकते हैं ठीक कर दी है? उदाहरण के लिए 'https: // dl.bintray.com/eed3si9n/sbt-plugins/com.eed3si9n/sbt-assembly/scala_2.11/sbt_1.0.0-m4/0.14.3/ivys/ivy.xml' –

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