Scala,% 和%% 符号的意思是

我是新来的!Framework2.1(Java 版本) ,并且没有使用 scala 的经验。我不明白什么是和什么是 abc0和 abc1意味着在 Build.scala。我在谷歌上搜索它们,但找不到它们的意义。

在 Build.scala 文件中,我有:

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

为什么第一行使用单个% 符号,而第二行使用2% 符号 %%? 这是干什么用的?

28169 次浏览

这是作为构建工具使用的 SBT 的一部分。具体来说,这是一个导入语句。

百分比符号 %实际上是一种用于构建依赖项的方法。双百分号 %%注入了当前的 Scala 版本——这允许你为你运行的 Scala 版本获得正确的库。这是为了避免在更新 Scala 时更改构建文件。

更多信息 给你

根据官方文件:

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"
)

假设构建的 scalaVersion2.9.1,以下内容是相同的:

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

如上所述,如果使用 %%,则不必指定 版本。