Строить.scala, % и %% значение символов


Я новичок в игре! Framework 2.1 (версия java) и не имеют опыта работы с scala. Я не понимаю, что такое и что делает % и %% значит в строй.скала. Я погуглил о них, но не смог найти их смысл.

в моей сборке.scala файл у меня есть:

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

Почему в первой строке используется один символ%, а во второй - два символа процента %%? Для чего они нужны?

2 114

2 ответа:

из официальной документации:

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

получение правильной версии Scala с %%

если вы используете groupID %% artifactID % revision вместо groupID % artifactID % revision (разница двойной %% после groupID), SBT добавит версию Scala вашего проекта к артефакту имя. Это просто короткий путь.

вы могли бы написать это без %%:

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

предполагая, что scalaVersion для построения 2.9.1, следующее идентично:

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

как вы можете видеть выше, если вы используете %%, вам не нужно указать версия.

это часть SBT, который play использует в качестве инструмента сборки. В частности, это оператор импорта.

символ процента % Это фактически метод, используемый для построения зависимостей. Знак двойного процента %% вводит текущую версию Scala - это позволяет получить правильную библиотеку для версии scala, которую вы используете. Это делается для того, чтобы избежать необходимости изменять файл сборки при обновлении Scala.

дополнительная информация здесь