Build.scala, символы% и %%, означающие

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

В моем файле Build.scala у меня есть:

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

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

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, которую игра использует в качестве инструмента для сборки. В частности, это оператор импорта.

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

Больше информации здесь

Другие вопросы по тегам