it-swarm.dev

Build.scala ،٪ و ٪٪ رموز تعني

أنا جديد على اللعب! إطار 2.1 (إصدار جافا) وليس لديهم أي خبرة مع scala. لا أفهم ماهية وما يعنيه % و %% في Build.scala. غوغل عنهم ولكن لم أجد معنى لهم.

في ملف Build.scala لدي:

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

لماذا يستخدم السطر الأول رمزًا واحدًا٪ والآخر يستخدم اثنين بالمائة من الرموز %%؟ لماذا هم ل؟

135
Franco

من الوثائق الرسمية:

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

الحصول على إصدار Scala الصحيح باستخدام %%

إذا كنت تستخدم groupID %% artifactID % revision بدلاً من groupID % artifactID % revision (الفرق هو %% المزدوج بعد groupID) ، فستضيف SBT إصدار Scala الخاص بمشروعك إلى اسم قطعة أثرية. هذا مجرد اختصار.

يمكنك كتابة هذا بدون %%:

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"
)

كما ترى أعلاه ، إذا كنت تستخدم %% ، فلست بحاجة إلى تحديد الإصدار.

157
Mingyu

هذا جزء من SBT الذي يستخدمه اللعب كأداة بناء. على وجه التحديد هذا هو بيان الاستيراد.

رمز النسبة المئوية % هو في الواقع طريقة تستخدم لبناء التبعيات. تقوم علامة النسبة المئوية المزدوجة %% بضخ إصدار Scala الحالي - وهذا يتيح لك الحصول على المكتبة الصحيحة لإصدار scala الذي تقوم بتشغيله. هذا لتجنب الاضطرار إلى تغيير ملف البناء الخاص بك عند تحديث Scala.

مزيد من المعلومات هنا

23
Boris the Spider