【问题标题】:Build.scala, % and %% symbols meaningBuild.scala, % 和 %% 符号含义
【发布时间】:2013-07-01 22:30:18
【问题描述】:

我是 Play 新手!框架 2.1(java 版本),没有使用 scala 的经验。我不明白 %%% 在 Build.scala 中的含义和含义。我用谷歌搜索了它们,但找不到它们的含义。

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

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

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

【问题讨论】:

    标签: scala sbt playframework-2.1


    【解决方案1】:

    来自官方文档:

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

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

    【讨论】:

    • “你项目的Scala版本”是指SettingKey的值scalaVersion
    • 不要认为我的附加问题需要提出单独的 SO 问题:我什么时候想使用 %% ?对我来说,它看起来“更好”,应该一直使用....
    • @PeterPerháč 你不能将%% 用于不包含 Scala 版本的工件(例如纯 Java 库)。
    【解决方案2】:

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

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

    更多信息here

    【讨论】:

      猜你喜欢
      • 2014-09-14
      • 2016-07-20
      • 2013-07-18
      • 2021-09-15
      • 2012-06-12
      • 2017-01-02
      • 1970-01-01
      • 2017-05-18
      • 2016-02-25
      相关资源
      最近更新 更多