Signification des symboles Build.scala,% et %%


155

Je suis nouveau sur Play! Framework 2.1 (version java) et n'ont aucune expérience avec scala. Je ne comprends pas ce que sont et ce que fait %et %%signifie dans Build.scala. J'ai cherché sur Google mais je n'ai pas trouvé leur signification.

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 utilise deux symboles pour cent %%? À quoi servent-ils?

Réponses:


184

De la documentation officielle:

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

Obtenir la bonne version de Scala avec %%

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

Vous pouvez écrire ceci sans %%:

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

En supposant que scalaVersionpour 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 la version.


2
«La version Scala de votre projet» signifie la valeur de la clé de réglage scalaVersion.
— Gordon Gustafson

4
ne pensez pas que poser une question SO distincte est nécessaire pour ma question supplémentaire: quand est-ce que je ne voudrais pas utiliser %%? Pour moi, il semble que c'est `` mieux '' et devrait toujours être utilisé ...
— Peter Perháč

10
@ PeterPerháč vous ne pouvez pas utiliser %%avec des artefacts qui ne contiennent pas de version Scala (comme les bibliothèques Java pures).
— Toxaris

25

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 double signe de pourcentage %%injecte la version actuelle de Scala - cela vous permet d'obtenir la bibliothèque correcte pour la version de scala que vous exécutez. Ceci afin d'éviter d'avoir à modifier votre fichier de construction lorsque vous mettez à jour Scala.

Plus d'informations ici

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.