Build.scala,%和%%符号的含义

我是新玩的! Framework 2.1(Java版本),并没有与Scala的经验。 我不明白在Build.scala%%%意思是什么和什么。 我search了他们,但找不到他们的意思。

在我的Build.scala文件中,我有:

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

为什么第一行使用单个%符号,第二行使用两个百分号%% ? 他们是为了什么?

2 Solutions collect form web for “Build.scala,%和%%符号的含义”

从官方文档:

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

使用%%获得正确的Scala版本

如果使用groupID %% artifactID % revision而不是groupID % artifactID % revision (不同之处在于%%后的double %% ),SBT会将您项目的Scala版本添加到工件名称中。 这只是一个捷径。

你可以写这个没有%%

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

假设你的版本的scalaVersion2.9.1 ,以下是相同的:

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

正如你上面看到的,如果你使用%% ,你不必指定版本。

这是作为构build工具使用的SBT的一部分。 具体来说这是一个重要的声明。

百分比符号%实际上是一种用于构build依赖关系的方法。 双百分号%%注入当前的Scala版本 – 这可以让你得到正在运行的scala版本的正确库。 这是为了避免在更新Scala时必须更改构build文件。

更多信息在这里

  • 播放2.4:窗体:找不到参数消息的隐式值:play.api.i18n.Messages
  • Scala类的构造函数参数
  • 在Scala中有没有一种通用的方法来记忆?
  • 为什么Scala中的PartialFunction <:Function?
  • Java java.lang.Class <T>对象的Scala等价物
  • 斯卡拉元组拆包
  • Scala / Java中类似于Python的Pickle的简单,无障碍,零样板序列化?
  • 了解“types”关键字在Scala中的作用
  • 使用或者在Scala代码中处理失败
  • 什么是Scala中的lambdatypes,它们有什么好处?
  • 在Scala中一次捕获多个exception