web-dev-qa-db-fra.com

Build.scala, symboles% et %% signifiant

Je suis nouveau pour jouer! Framework 2.1 (version Java) et n’ont aucune expérience de scala. Je ne comprends pas ce que sont et qu'est-ce que % et %% _ signifie dans Build.scala. J'ai googlé à leur sujet mais je ne trouvais pas leur sens.

Dans mon fichier Build.scala, 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 deux symboles de pourcentage %%? À quoi servent-ils?

138
Franco

De la documentation officielle:

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

Obtenir le bon Scala avec %%

Si tu utilises groupID %% artifactID % revision au lieu de groupID % artifactID % revision _ (la différence est le double %% après groupID), SBT ajoutera la version Scala) de votre projet au nom de l’artefact. Il s’agit simplement d’un raccourci.

Vous pourriez écrire ceci sans le %%:

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

En supposant que scalaVersion pour votre construction 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 la version.

161
Mingyu

Cela fait partie de SBT que le jeu utilise comme outil de construction. Plus précisément, il s'agit d'une déclaration d'importation.

Le symbole de pourcentage % est en fait une méthode utilisée pour créer des dépendances. Le signe du double pourcentage %% injecte la version actuelle Scala version - vous permet d’obtenir la bonne bibliothèque pour la version de scala que vous exécutez. Ceci évite de devoir changer votre fichier de construction lorsque vous mettez à jour Scala.

Plus d'informations ici

23
Boris the Spider