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"
为什么第一行使用单个%符号,第二行使用两个百分号%%
? 他们是为了什么?
从官方文档:
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" )
假设你的版本的
scalaVersion
是2.9.1
,以下是相同的:val appDependencies = Seq( "org.scala-tools" %% "scala-stm" % "0.3" )
正如你上面看到的,如果你使用%%
,你不必指定版本。
这是作为构build工具使用的SBT的一部分。 具体来说这是一个重要的声明。
百分比符号%
实际上是一种用于构build依赖关系的方法。 双百分号%%
注入当前的Scala版本 – 这可以让你得到正在运行的scala版本的正确库。 这是为了避免在更新Scala时必须更改构build文件。
更多信息在这里