【问题标题】:"Error during sbt execution: No Scala version specified or detected" with SBT from Homebrew“执行 sbt 期间出错:未指定或检测到 Scala 版本”来自 Homebrew 的 SBT
【发布时间】:2014-02-09 11:07:16
【问题描述】:

我已经安装了 Scala 2.10.3 和 SBT 0.13.1。当我在Hello, World from the SBT documentation 之后执行 SBT 时,我收到以下错误消息:

“sbt 执行期间出错:未指定或检测到 Scala 版本”

我尝试使用scalaVersion 添加build.sbt 文件,但错误不断出现。

请指教。

我刚刚将 sbt 降级到 0.12.3 并且它可以工作......那么 0.13.X 有什么问题?

【问题讨论】:

  • 您无需安装 Scala 即可使用 SBT(因此我们在帮助您的同时无需考虑它)。 build.sbt 是什么样的?你能确保你在项目中只有build.sbt 吗?这就是你真正需要的(甚至不需要文件) - 因此simple 部分。
  • name := "hello-sbt" organization := "org.example" scalaVersion := "2.10.3" version := "0.0.1-SNAPSHOT"(每个语句之间有一个空行)
  • 你能在空目录中运行sbt about吗?输出是什么?你真的不需要文件来运行sbt
  • 我从 0.13.0 升级到 0.13.1 时遇到了同样的问题并产生了一个问题:github.com/sbt/sbt/issues/1117

标签: scala sbt homebrew


【解决方案1】:

升级 0.13.* 版本不是问题。它是导致问题的存储库缓存。对于缓存中的 sbt jar,您可能已经破坏/没有常春藤(当仅通过 maven repo 下载 jar 时)。

升级后删除您的 ivy repo 缓存(或重命名文件夹)并删除 .sbt/boot 文件夹(删除它可以从头开始)

编辑您的 ./sbt/repositories 文件并提供对 ivy 存储库的偏好。如果您正在使用包含 ivy 和 maven 样式工件的代理存储库,请将其添加如下

[repositories]

local

maven-local

maven-central-ivy: http://<repository url>, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

maven-central: http://<repository url>

这将使得 (org.scala-sbt/sbt/*) 能够与 Ivys xml 一起下载,从中获取版本/修订和依赖项以进行构建。如果只从“maven-central”下载jar,就会报错。

【讨论】:

    【解决方案2】:

    这是您使用的 IDE 的问题,特别是其中的 scala 插件。 您只需转到创建 build.sbt 的文件夹即可解决此问题。删除“project”文件夹并打开cmd,对该文件夹运行“sbt”命令,将创建一个新的项目文件夹。现在您可以在 IDE 中打开它。 可能是你一开始就在ide中发现了一些问题,如果你构建一次项目,所有的问题都会消失。

    【讨论】:

      【解决方案3】:

      我完全按照@Gopi 的建议做了,但这是我的存储库文件内容:

      [repositories]
      
        local
        jcenter: https://jcenter.bintray.com/
        maven-central
        typesafe-ivy-releases: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
        sbt-ivy-snapshots: https://repo.scala-sbt.org/scalasbt/ivy-snapshots/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
      

      我的 SBT 版本:1.1.1 1.8版 视窗 10

      希望对您有所帮助, BR。保罗

      【讨论】:

        【解决方案4】:

        我还通过自制软件在我的机器上安装了 Scala 和 SBT,并且可以运行给定的简单 hello 示例,所以我猜你做错了什么:-)

        请提供更多诊断信息,例如:

        'which sbt' 和 'which scala' 这两个命令的输出是什么? 您应该会看到如下结果:

        $ which scala
        /usr/local/bin/scala
        
        $ which sbt
        /usr/local/bin/sbt
        
        $ ls -laF /usr/local/bin/sbt
        lrwxr-xr-x  1 rjk  admin  28 Feb  9 13:32 /usr/local/bin/sbt@ -> ../Cellar/sbt/0.13.1/bin/sbt
        
        $ ls -laF /usr/local/bin/scala
        lrwxr-xr-x  1 rjk  admin  32 Feb  9 13:38 /usr/local/bin/scala@ -> ../Cellar/scala/2.10.3/bin/scala
        

        给定您运行示例代码的目录,除了 hw.scala 示例之外,它是完全空的吗?还是您还添加了 build.sbt 或 project/build.properties?如果是这种情况,最好在此处列出以发现它们的任何问题。

        【讨论】:

        • SBT 不需要 Scala。它会照顾它,所以你不必这样做。
        • 我只是通过删除 Scala 来查看它是否会给出与主题作者所说的相同的错误 :-)
        • 这里是命令的结果: which scala /usr/local/bin/scala which sbt /usr/local/bin/sbt ls -laF /usr/local/bin/sbt lrwxr-xr -x /usr/local/bin/sbt@ -> ../Cellar/sbt/0.13.0/bin/sbt ls -laF /usr/local/bin/scala lrwxr-xr-x /usr/local/bin/ scala@ -> ../Cellar/scala/2.10.3/bin/scala
        • 包含 hw.scala 的目录除 hw.scala 文件外为空。我尝试添加一个 build.sbt 文件,但没有解决问题。
        猜你喜欢
        • 2016-07-09
        • 1970-01-01
        • 2016-08-04
        • 2016-02-26
        • 2013-07-26
        • 2016-08-22
        • 1970-01-01
        • 2021-07-08
        • 2013-01-25
        相关资源
        最近更新 更多