Build.scala、%与%%符号的含义

3 浏览
0 Comments

Build.scala、%与%%符号的含义

我是新手使用Play!框架2.1(Java版本),并没有使用scala的经验。我不明白Build.scala文件中的%%%是什么以及它们的含义。我在谷歌上搜索它们,但是找不到它们的意思。

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

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

为什么第一行使用单个%符号,而第二行使用两个百分号符号%%?它们是用来做什么的?

admin 更改状态以发布 2023年5月20日
0
0 Comments

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

百分号符号 % 实际上是用于构建依赖项的方法。双百分号符号 %% 插入当前 Scala 版本 - 这使您可以获取适用于您正在运行的 Scala 版本的正确库。这是为了避免在更新 Scala 时更改构建文件。

更多信息在这里

0
0 Comments

从官方文档中得知:

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

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

如果您使用groupID %% artifactID % revision而不是groupID % artifactID % revision(区别在于groupID后面有两个%%),SBT将添加您的项目Scala版本到artifact名称中。 这只是一个快捷方式。

您可以不使用%%编写:

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

如您所见,如果使用%%,则无需指定版本。

0