更新后未解决的依赖关系SBT 0.13.0

时间:2013-08-29 07:53:30

标签: scala configuration build sbt ivy

  
    

请查看最新评论。

  

将SBT更新为0.13.0:

我有几个使用scala 2.10.2编写的项目,并使用sbt 0.12.4构建。由于我的操作系统是Ubuntu,我使用SBT.deb包来安装sbt 0.12.4。一切都很好。我用sbt。

建立了我的项目

昨天我想将sbt更新到版本0.13.0。我下载并安装了新的.deb软件包。项目配置尚未更改。

失败:

在更新后运行SBT时出现此故障:


$ sbt
Loading /usr/share/sbt/bin/sbt-launch-lib.bash
Getting org.scala-sbt sbt 0.13.0 ...

:: problems summary ::
:::: WARNINGS
        module not found: org.scala-sbt#sbt;0.13.0

    ==== local: tried

      /home/myUser/.ivy2/local/org.scala-sbt/sbt/0.13.0/ivys/ivy.xml

        ::::::::::::::::::::::::::::::::::::::::::::::

        ::          UNRESOLVED DEPENDENCIES         ::

        ::::::::::::::::::::::::::::::::::::::::::::::

        :: org.scala-sbt#sbt;0.13.0: not found

        ::::::::::::::::::::::::::::::::::::::::::::::



:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
unresolved dependency: org.scala-sbt#sbt;0.13.0: not found
Error during sbt execution: Error retrieving required libraries
  (see /home/myUser/.sbt/boot/update.log for complete log)
Error: Could not retrieve sbt 0.13.0

此处提供~/.sbt/update.log文件:http://ubuntuone.com/6RDMgOqMnxdyKgfzrWVUNP 此处提供了~/.sbt/boot/.update.log文件:http://ubuntuone.com/4KqYnSL9Mc1yrmRLbCx6bI

如何修复此依赖项解析?

嫌疑人:

  1. 其他人遇到类似this的类似问题,但不一样。我不认为这是构建定义不兼容的问题,对吗?据我所知,SBT没有达到阅读项目定义的程度。

  2. 应该从哪里检索此文件?它不应该包含在SBT安装包中吗?此外,它看起来像SBT / Ivy只看到当地的常春藤回购。 Maven Central Repository中没有版本为0.13.0的SBT工件。我是否必须指定另一个回购或什么?

  3. scala版本怎么样?不要在依赖关系定义中指定?我是否必须在某处指定scala版本?

  4. 项目配置:

    文件:build.sbt


    name := "MyProject"
    
    version := "1.0-SNAPSHOT"
    
    organization := "myOrg"
    
    scalaVersion := "2.10.2"
    
    libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "0.4.2"
    

    文件:project/plugins.sbt

    addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.3.0")
    

    档案:project/build.properties

    在此问题出现之前,我没有此文件。我添加它试图解决这个问题:

    sbt.version=0.13.0
    

3 个答案:

答案 0 :(得分:49)

我在~/.sbt/repositories添加了一些回购。这解决了这个问题。现在该文件如下所示:

[repositories]
  local
  sbt-releases-repo: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  sbt-plugins-repo: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  maven-central: http://repo1.maven.org/maven2/

您也应该看一下:http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Proxy-Repositories.html

但令我担心的是,如果这是我和我的系统的个别情况,或者其他人也有这样的问题。我误解了什么吗?因为如果我想使用构建工具,我不认为在安装后关心工具的依赖关系应该是我的责任。这应该由工具的安装本身来完成。

当然,我有责任关心项目的依赖关系。

答案 1 :(得分:2)

我遇到了同样的问题,原来是pebcak(当然),在project / build.properties中指定0.13而不是0.13.0

单步执行.sbt / boot / update.log中的输出非常有用并引导我解决这个问题(特别是在我注意到sbt在〜/ - 下载后运行正常 - 我注意到它正在寻找的ivy.xml因为与先前在〜/)

中尝试下载的那个不匹配

答案 2 :(得分:0)

当我在OSX上的Java版本为1.6时,我收到了类似的错误消息。更新到1.8修复了这个问题。