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.
Больше информации здесь