Construire.signification des symboles scala, % et %%

Je suis nouveau à Jouer! Framework 2.1 (version java) et n'ont aucune expérience avec scala. Je ne comprends pas ce que sont et ce que % et %% signifient dans la construction.Scala. J'ai googlé à leur sujet mais je n'ai pas trouvé leur signification.

Dans ma construction.fichier scala que j'ai:

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

Pourquoi la première ligne utilise un seul symbole % et la seconde utilise deux symboles de pourcentage %%? Quels sont-ils?

114
demandé sur ROMANIA_engineer 2013-07-04 07:37:07

2 réponses

Extrait de la documentation officielle:

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

Obtenir la bonne version avec Scala %%

Si vous utilisez groupID %% artifactID % revision au lieu de groupID % artifactID % revision (la différence est le double %% après l' groupID), SBT ajoutera la version Scala de votre projet à l'artefact nom. C'est juste un raccourci.

Vous pouvez écrire ceci sans le %%:

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

En supposant le scalaVersion pour votre build est 2.9.1, ce qui suit est identique:

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

Comme vous pouvez le voir ci-dessus, si vous utilisez %%, vous n'avez pas à spécifier l' version.

137
répondu Mingyu 2015-12-20 16:12:55

Cela fait partie de SBT que play utilise comme outil de construction. Plus particulièrement, la présente est une déclaration d'importation.

Le symbole de pourcentage % est une méthode utilisée pour construire les dépendances. Le signe double pourcentage %% injecte la version Scala actuelle - cela vous permet d'obtenir la bibliothèque correcte pour la version de scala que vous utilisez. C'est pour éviter d'avoir à changer votre fichier de construction lorsque vous mettez à jour Scala.

Plus d'informations ici

20
répondu Boris the Spider 2015-02-12 14:31:23