【问题标题】:What's the proper setup of sbt-idea with sbt 0.11?sbt 0.11 的 sbt-idea 的正确设置是什么?
【发布时间】:2012-01-29 12:20:39
【问题描述】:

我正在使用 sbt 0.11.2 和 sbt-idea 创建一个 Scala 项目,我在 gen-idea 任务中获得了 UNRESOLVED DEPENDENCIES。

我刚刚安装了 sbt(下载了 jar 并按照 wiki 中的说明制作了脚本),按照 sbt-idea setup here,为我的项目创建了一个空目录,然后运行 ​​sbt,然后运行 ​​gen-idea任务。

它找不到依赖项,因为它只使用内置的 repos。我如何告诉 sbt 检查另一个 repo?


当我将build.sbt 文件放在plugins 目录中并运行sbt 时,它开始解决问题,其中之一是Resolving com.github.mpeltonen#sbt-idea;0.11.0 ...

在这个过程的后期,它会成功下载:

[info] downloading http://mpeltonen.github.com/maven/com/github/mpeltonen/sbt-idea_2.9.1_0.11.2/0.11.0/sbt-idea-0.11.0.jar ...
[info]  [SUCCESSFUL ] com.github.mpeltonen#sbt-idea;0.11.0!sbt-idea.jar (592ms)

当我运行gen-idea 任务时,一开始看起来不错...

> gen-idea
[info] Trying to create an Idea module default-b91f2c

它继续创建.idea 目录等,似乎创建得很好。然后它再次开始解决问题(scala 工具、sbt、commens-* 等)

最终它会尝试解析sbt-idea:

[warn]  module not found: com.github.mpeltonen#sbt-idea;0.11.0
[warn] ==== local: tried
[warn]   /home/scaladev/.ivy2/local/com.github.mpeltonen/sbt-idea/scala_2.9.1/sbt_0.11.2/0.11.0/ivys/ivy.xml
[warn] ==== typesafe-ivy-releases: tried
[warn]   http://repo.typesafe.com/typesafe/ivy-releases/com.github.mpeltonen/sbt-idea/0.11.0/ivys/ivy.xml
[warn] ==== public: tried
[warn]   http://repo1.maven.org/maven2/com/github/mpeltonen/sbt-idea_2.9.1_0.11.2/0.11.0/sbt-idea-0.11.0.pom
[warn] ==== Scala-Tools Maven2 Repository: tried
[warn]   http://scala-tools.org/repo-releases/com/github/mpeltonen/sbt-idea_2.9.1_0.11.2/0.11.0/sbt-idea-0.11.0.pom
[warn] ==== Scala-Tools Maven2 Snapshots Repository: tried
[warn]   http://scala-tools.org/repo-snapshots/com/github/mpeltonen/sbt-idea_2.9.1_0.11.2/0.11.0/sbt-idea-0.11.0.pom
[info] Resolving commons-io#commons-io;2.0.1 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.github.mpeltonen#sbt-idea;0.11.0: not found
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn] 
[warn]  Note: Some unresolved dependencies have extra attributes.  Check that these dependencies exist with the requested attributes.
[warn]      com.github.mpeltonen:sbt-idea:0.11.0 (sbtVersion=0.11.2, scalaVersion=2.9.1)
[warn] 

我知道它不会在那些位置找到它,但我不明白为什么它没有尝试 github 存储库,就像在配置插件时那样。我期待看到一条看起来像这样的线:

[warn] ==== sbt-idea-repo: tried

【问题讨论】:

    标签: sbt sbt-idea


    【解决方案1】:

    sbt 0.11.2 的 gen-idea 插件尚未发布,但 0.11.1-SNAPSHOT 版本应该可以正常工作:

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
    
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "0.11.1-SNAPSHOT")
    

    【讨论】:

    • 我尝试使用 sbt 0.11.1 和 sbt-idea 0.11.1-SNAPSHOT 并得到相同的结果。错误与上面相同,当然版本号不同。当它去解决 sbt-idea 时,这个问题看起来仍然在最后,它没有检查 github 存储库,它实际存在的唯一位置。
    • @JackDreep 似乎很奇怪,因为它对我有用。当我无法访问互联网时,有时我会遇到这种错误,但似乎不是你的情况。您能否添加使用 sbt 0.11.1 和 sbt-idea 0.11.1-SNAPSHOT 时获得的跟踪信息?
    • 我很乐意添加跟踪,但我不确定您的意思。您的意思是我对原始帖子所做的修改,还是其他内容?
    • @JackDreep 是的,您可以将带有 0.11.1-SNAPSHOT 的测试跟踪附加到您的帖子中
    • 我终于回到了这一点,没想到我只是在idea中打开了生成的项目。它工作得很好。 gen-idea 任务仍然会抛出上面列出的错误,但这似乎对实际项目没有任何影响。一切都按预期工作,并且所有库都被正确引用。感谢您帮助调查此事。
    【解决方案2】:

    这在 sbt-idea README 文件here 中有记录。具体来说:

    将以下行添加到 ~/.sbt/plugins/build.sbt 或 PROJECT_DIR/project/plugins.sbt

    resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
    
    addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "0.11.0")
    

    注意:如果您在安装 sbt 0.11 时遇到问题,请see this。

    【讨论】:

    • 我已经尝试过了,得到了同样的错误。我提供的 stackoverflow 链接实际上说要做类似的事情,但将这些相同的行放在 ~/.sbt/plugins.sbt 中。那也没用。当我编辑 build.sbt 文件并启动 sbt 时,它会正确加载内容(包括来自该 github repo 的内容),但是当我运行该 gen-idea 任务时,我遇到了依赖问题,它不会检查 repo。我觉得我错过了另一个注册回购的地方。
    • 我刚刚在这里尝试过,它非常适合我。您收到了哪些确切的错误消息?
    • 感谢保罗和我一起看这个。我已经用该过程的详细信息更新了原始帖子。
    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 2018-05-07
    • 2017-02-19
    • 2016-12-04
    • 2018-10-06
    • 2014-06-04
    • 1970-01-01
    • 2013-10-30
    相关资源
    最近更新 更多