gpt4 book ai didi

scala - sbt 使用的默认 scalaVersion 在哪里?

转载 作者:行者123 更新时间:2023-12-04 02:39:38 25 4
gpt4 key购买 nike

出于好奇,我想知道 sbt 使用的默认 scalaVersion 是否以某种方式硬编码在源代码中?我的意思是所有未明确指定 scala 版本的项目的版本(通过 scalaVersion 设置键)

我问这个是因为,在我的机器上,我正在使用 sbt 0.12.4 并且在任何地方都没有 build.sbt 文件(既不是项目根目录,也不是 project~/.sbt/plugins), 当我输入 sbt about 我得到这个:

...
[info] sbt, sbt plugins, and build definitions are using Scala 2.9.2

我已经在使用 scala 2.10.2(在我的 PATH 中),但我认为此安装与 sbt 无关,因为它是从官方存储库下载 scala。

类似问题还有很多like thisthis , 但它们仅指特定项目。

有什么想法吗?

最佳答案

默认情况下,sbt 将使用用于运行 sbt 本身的相同版本的 Scala 构建项目。但是 ~/.sbt/boot 目录从存储库下载 scala jar,类似于插件 jar - 所以默认的 scala 版本是存储库中配置的 sbt 的依赖项。意味着随着 sbt 版本的向前发展,默认的 scala 版本也将向前发展,正如 sbt 开发人员所配置的那样。

这可以通过查看 plugins/target/resolution-cache/reports/default-global-plugins-scala-tool.xml(以及 runtime-resolved.xml 中的相同内容)来确认:

<module organisation="org.scala-lang" name="scala-compiler">
<revision name="2.10.2" status="release" pubdate="20130607040625" resolver="sbt-chain" artresolver="sbt-chain" homepage="http://www.scala-lang.org/" downloaded="false" searched="false" default="false" conf="default, optional, compile, runtime, optional(default), master" position="0">
<license name="BSD-like" url="http://www.scala-lang.org/downloads/license.html "/>
<metadata-artifact status="no" details="" size="2843" time="0" location="C:\Users\Bestos\.ivy2\cache\org.scala-lang\scala-compiler\ivy-2.10.2.xml" searched="false" origin-is-local="false" origin-location="http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.pom"/>
<caller organisation="default" name="global-plugins" conf="scala-tool" rev="2.10.2" rev-constraint-default="2.10.2" rev-constraint-dynamic="2.10.2" callerrev="0.0"/>
<artifacts>
<artifact name="scala-compiler" type="jar" ext="jar" status="no" details="" size="14411577" time="0" location="C:\Users\Bestos\.ivy2\cache\org.scala-lang\scala-compiler\jars\scala-compiler-2.10.2.jar">
<origin-location is-local="false" location="http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.10.2/scala-compiler-2.10.2.jar"/>
</artifact>
</artifacts>
</revision>
</module>

当然,用于单个项目的 scala 版本可以通过设置 scalaVersion 配置为与“bootstrap scala 版本”不同。在 build.sbt 中:

scalaVersion := "2.10.1"

关于scala - sbt 使用的默认 scalaVersion 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com