Build.scala,% और %% प्रतीकों का अर्थ है


155

मैं खेलने के लिए नया हूँ! फ्रेमवर्क 2.1 (जावा संस्करण) और स्कैला के साथ कोई अनुभव नहीं है। मुझे समझ नहीं आता क्या कर रहे हैं और क्या करता है %और %%Build.scala में मतलब है। मैंने उनके बारे में गुगली की, लेकिन उनका अर्थ नहीं पा सका।

मेरे Build.scala फ़ाइल में मेरे पास है:

"org.hibernate" % "hibernate-entitymanager" % "4.1.0.Final",
"com.typesafe" %% "play-plugins-mailer" % "2.1"

पहली पंक्ति एक% प्रतीक का उपयोग क्यों करती है और दूसरी पंक्ति दो प्रतिशत प्रतीकों का उपयोग करती है %%? यह किस लिए हैं?

जवाबों:


184

आधिकारिक दस्तावेज से:

http://www.playframework.com/documentation/2.1.1/SBTDependencies

के साथ सही स्काला संस्करण प्राप्त करना %%

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

आप इसे बिना लिख ​​सकते हैं %%:

val appDependencies = Seq(
  "org.scala-tools" % "scala-stm_2.9.1" % "0.3"
)

scalaVersionआपके बिल्ड के लिए मान लिया गया है 2.9.1, निम्नलिखित समान है:

val appDependencies = Seq(
  "org.scala-tools" %% "scala-stm" % "0.3"
)

जैसा कि आप ऊपर देख सकते हैं, यदि आप उपयोग करते हैं, तो आपको %%संस्करण निर्दिष्ट करने की आवश्यकता नहीं है।


2
"आपकी परियोजना का स्काला संस्करण" का अर्थ है कि सेटिंग की कीमत scalaVersion
गॉर्डन गुस्ताफसन

4
मेरे अतिरिक्त प्रश्न के लिए एक अलग SO प्रश्न उठाना आवश्यक नहीं है : मैं %% का उपयोग कब करना चाहूंगा ? मेरे लिए ऐसा लगता है कि यह 'बेहतर' है और इसे हमेशा इस्तेमाल किया जाना चाहिए ....
पीटर पेर्ह्व

10
@ PeterPerháč आप उन %%कलाकृतियों के साथ उपयोग नहीं कर सकते जिनमें एक स्केल संस्करण (जैसे शुद्ध जावा लाइब्रेरी) नहीं है।
टॉक्सारिस

25

यह SBT का एक हिस्सा है जो एक बिल्ड टूल के रूप में उपयोग करता है। विशेष रूप से यह एक आयात विवरण है।

प्रतिशत प्रतीक %वास्तव में एक तरीका है जो निर्भरता के निर्माण के लिए उपयोग किया जाता है। दोहरा प्रतिशत संकेत %%वर्तमान स्काला संस्करण को इंजेक्ट करता है - यह आपको स्केला के संस्करण के लिए सही पुस्तकालय प्राप्त करने की अनुमति देता है। जब आप Scala को अपडेट करते हैं तो अपनी बिल्ड फ़ाइल को बदलने से बचना होता है।

अधिक जानकारी यहाँ

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.