我是Play的新手! Framework 2.1(java版)并没有使用scala的经验。我不明白Build.scala中%
和%%
的含义和含义。我用Google搜索了他们,但找不到他们的意思。
在我的Build.scala文件中,我有:
"org.hibernate" % "hibernate-entitymanager" % "4.1.0.Final",
"com.typesafe" %% "play-plugins-mailer" % "2.1"
为什么第一行使用单个%符号而第二行使用两个百分号%%
?
它们用于什么?
答案 0 :(得分:154)
来自官方文件:
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" )
如上所示,如果您使用%%
,则无需指定
版本
答案 1 :(得分:22)
这是SBT的一部分,该游戏用作构建工具。具体来说,这是一个import语句。
百分比符号%
实际上是用于构建依赖关系的方法。双百分号%%
注入当前的Scala版本 - 这允许您为正在运行的scala版本获取正确的库。这是为了避免在更新Scala时更改构建文件。
更多信息here