web-dev-qa-db-de.com

Build.scala,% und %% Symbolbedeutung

Ich bin neu beim Spielen! Framework 2.1 (Java-Version) und habe keine Erfahrung mit Scala. Ich verstehe nicht, was ist und was macht % und %% meine in Build.scala. Ich habe über sie gegoogelt, aber ihre Bedeutung nicht gefunden.

In meiner Build.scala-Datei habe ich:

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

Warum in der ersten Zeile ein einzelnes% -Symbol und in der zweiten Zeile zwei Prozent-Symbole verwendet werden %%? Wofür sind sie?

138
Franco

Aus der offiziellen Dokumentation:

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

Immer die richtige Scala Version mit %%)

Wenn Sie groupID %% artifactID % revision Anstelle von groupID % artifactID % revision Verwenden (der Unterschied ist das doppelte %% Nach dem groupID), fügt SBT das Scala Version des Artefaktnamens. Dies ist nur eine Verknüpfung.

Sie könnten dies ohne den %% Schreiben:

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

Angenommen, das scalaVersion für Ihren Build ist 2.9.1, Ist Folgendes identisch:

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

Wie Sie oben sehen können, müssen Sie bei Verwendung von %% Die Version nicht angeben.

161
Mingyu

Dies ist ein Teil von SBT, das play 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 - dies ermöglicht es Ihnen, die richtige Bibliothek für die Version von scala) zu erhalten, die Sie ausführen. Dies soll vermeiden, dass Sie Änderungen vornehmen müssen Ihre Build-Datei, wenn Sie Scala aktualisieren.

Weitere Informationen hier

23