Build.scala、%与%%符号的含义
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日
这是 Play 使用的构建工具 SBT 的一部分。具体来说,这是一个导入语句。
百分号符号 %
实际上是用于构建依赖项的方法。双百分号符号 %%
插入当前 Scala 版本 - 这使您可以获取适用于您正在运行的 Scala 版本的正确库。这是为了避免在更新 Scala 时更改构建文件。
更多信息在这里
从官方文档中得知:
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" )
假设您的构建的
scalaVersion
为2.9.1
,则以下内容相同:val appDependencies = Seq( "org.scala-tools" %% "scala-stm" % "0.3" )
如您所见,如果使用%%
,则无需指定版本。