2012-05-23 13 views
6

मैं निम्नलिखित परियोजना का निर्माण किया है:एसबीटी के साथ "ट्रांजिटिव रिज़ॉल्यूवर" कैसे काम करते हैं?

import sbt._ 
import Keys._ 

object ProjectBuild extends Build { 

    val buildVersion = "0.1-SNAPSHOT" 

    val delvingReleases = "Delving Releases Repository" at "http://development.delving.org:8081/nexus/content/repositories/releases" 
    val delvingSnapshots = "Delving Snapshot Repository" at "http://development.delving.org:8081/nexus/content/repositories/snapshots" 
    val delvingRepository = if (buildVersion.endsWith("SNAPSHOT")) delvingSnapshots else delvingReleases 

    lazy val root = Project(
    id = "basex-scala-client", 
    base = file(".") 
).settings(

    organization := "eu.delving", 
    version := buildVersion, 

    resolvers += "BaseX Repository" at "http://files.basex.org/maven", 

    libraryDependencies += "org.basex" %  "basex" % "7.2.1", 
    libraryDependencies += "org.specs2" %% "specs2" % "1.7.1" % "test", 

    publishTo := Some(delvingRepository), 

    credentials += Credentials(Path.userHome/".ivy2"/".credentials"), 

    publishMavenStyle := true 
) 

} 

जब मैं एक अन्य परियोजना में जिसके परिणामस्वरूप पुस्तकालय, इसलिए की तरह शामिल हैं:

"eu.delving"   %% "basex-scala-client"   % "0.1-SNAPSHOT" 

और मुझे लगता है कि इस परियोजना के निर्माण के लिए प्रयास करते हैं, मैं मेरे उत्साह में त्रुटि मिली कि "org.basex% basex% 7.2.1" उस प्रोजेक्ट द्वारा संदर्भित लाइब्रेरी नहीं मिल सकती है।

मुझे लाइब्रेरी के लिए "क्लाइंट" प्रोजेक्ट में रिज़ॉल्वर जाना और जोड़ना होगा। इससे बचने का कोई रास्ता है क्या?

उत्तर

1

कोई ट्रांजिटिव रिज़ॉल्यूशन नहीं है, इसलिए बिल्ड उपयोगकर्ता को सभी ट्रांजिटिव लाइब्रेरी निर्भरताओं के सभी रिज़ॉल्यूशन को जानने की आवश्यकता है। इस दृष्टिकोण का लाभ यह है कि ओपनसोर्स परियोजनाओं पर, यह ज्ञात संकल्पकों से जुड़े ज्ञात भंडारों में से एक को प्रकाशित करने के लिए परियोजनाओं को प्रोत्साहित करता है।

कॉर्पोरेट उपयोग के लिए, आप अपने ट्रैफ़िक को ग्राफ के नीचे कुछ निर्भरताओं द्वारा पेश अज्ञात स्थानों पर जाने से रोक सकते हैं।

संगठन के भीतर रिज़ॉल्वर सेटिंग्स साझा करने के लिए, आप एक ऑर्ग-व्यापी प्लगइन बना सकते हैं।

+1

बस यह सुनिश्चित करना कि मैं सही ढंग से समझता हूं: जब मैं किसी लाइब्रेरी का उपयोग करता हूं जिसमें किसी अन्य रिज़ॉल्यूवर में निर्भरता होती है, तो मुझे संकल्पकों को हाथ से ऊपर की ओर जोड़ने की ज़रूरत है - क्या यह है? –

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