2013-07-04 9 views
92

Ich bin neu im Spiel! Framework 2.1 (Java-Version) und haben keine Erfahrung mit Scala. Ich verstehe nicht, was sind und was % und %% in Build.scala bedeuten. Ich habe über sie gegoogelt, konnte aber ihre Bedeutung nicht finden.Build.Scala,% und %% Symbole Bedeutung

In meiner Build.scala Datei ich habe:

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

Warum die erste Zeile %% ein einzelnes Symbol% ​​und die zweite verwendet zwei Prozent Symbole verwendet? Wozu dienen sie?

Antwort

114

Von der offiziellen Dokumentation:

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

Die richtige Scala Version mit %%

Wenn Sie groupID %% artifactID % revision statt groupID % artifactID % revision (die Differenz verwenden ist der Doppelgänger e %% nach dem groupID), fügt SBT die Scala-Version Ihres Projekts zum Artefakt hinzu. Dies ist nur eine Abkürzung.

Man könnte dies schreiben, ohne die %%:

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

die scalaVersion Unter der Annahme, für Ihren Build 2.9.1 ist, ist die folgende identisch:

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

Wie Sie oben sehen können, wenn Sie Verwenden Sie %%, müssen Sie die Version nicht angeben.

+1

"Die Scala-Version Ihres Projekts" steht für den Wert des SettingKey 'scalaVersion'. –

+1

denke nicht, eine separate SO-Frage für meine zusätzliche Frage zu stellen: wann würde ich _% nicht% verwenden wollen? Für mich sieht es so aus, als wäre es "besser" und sollte immer benutzt werden. –

+3

@ PeterPerháč Sie können '%%' nicht mit Artefakten verwenden, die keine Scala-Version enthalten (wie zB reine Java-Bibliotheken). – Toxaris

17

Dies ist ein Teil von SBT, das Spiel als Build-Tool verwendet. Insbesondere ist dies eine Importanweisung.

Das Prozentzeichen % ist eine Methode zum Erstellen von Abhängigkeiten. Das doppelte Prozentzeichen %% injiziert die aktuelle Scala-Version - damit können Sie die richtige Bibliothek für die Version von scala erhalten, die Sie gerade ausführen. Damit vermeiden Sie, Ihre Build-Datei zu ändern, wenn Sie Scala aktualisieren.

Weitere Informationen here

Verwandte Themen