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文件。

更多信息在这里

  • 在Scala中打印数组
  • println与Scala中的System.out.println
  • 在Scala中定义方法的九种方法?
  • param:_ *在Scala中的含义是什么?
  • HL主义者只不过是一种复杂的写作方式而已?
  • 我如何在Scala中执行多个任务?
  • 当case类包含一个scala枚举时,如何使用带有MongoCaseClassField的Rogue更新mongologging
  • 数组和List之间的区别在Scala中
  • 什么是scala.concurrent.Promise的用例?
  • 在IntelliJ IDEA中为Scala / sbt项目推荐.gitignore?
  • Scala中的右联合方法有什么好处?