【发布时间】:2012-07-30 21:48:51
【问题描述】:
现在我不知何故弄乱了我的全局 sbt 插件 (~/.sbt/plugins/build.sbt)。 Scala 2.9.1 似乎是 sbt 0.11.3 想要的版本,并且所有插件(sbt-gpg-plugin、sbt-idea-plugin)都是针对 2.9.1 发布的。
现在无论我做什么,它都会不断尝试找到它们是针对 2.9.2 构建的:
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] com.github.mpeltonen:sbt-idea:1.0.0 (sbtVersion=0.11.3, scalaVersion=2.9.2)
[warn] com.jsuereth:xsbt-gpg-plugin:0.6 (sbtVersion=0.11.3, scalaVersion=2.9.2)
...
[error] {file:...}default-50be6e/*:update: sbt.ResolveException: unresolved dependency: com.github.mpeltonen#sbt-idea;1.0.0: not found
我该如何解决这个问题,以便 sbt 像以前一样检索 Scala 2.9.1 的插件?
为了完整起见,我的文件是这样处理建议的:
// project-home/build.sbt
scalaVersion := "2.9.2"
...
// project-home/project/plugins.sbt
resolvers += "less is" at "http://repo.lessis.me"
addSbtPlugin( "me.lessis" % "ls-sbt" % "0.1.1" )
scalaVersion := "2.9.1" // "just in case it helps"
// ~/.sbt/plugins/build.sbt
scalaVersion := "2.9.1" // "just in case it helps"
resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
resolvers += Resolver.url( "sbt-plugin-releases", url( "http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases" ))( Resolver.ivyStylePatterns )
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.0.0")
addSbtPlugin( "com.jsuereth" % "xsbt-gpg-plugin" % "0.6" )
更糟糕的是,即使在我删除 ~/.sbt/plugins/build.sbt 之后,问题仍然存在。所以没有更多对 sbt-idea 或 xsbt-gpg-plugin 的引用(至少对我可见)。我仍然无法编译任何项目,因为 sbt 仍然试图找到这两个插件。史诗般的失败。
【问题讨论】:
-
这只是一个警告,而不是错误,但无论如何你为什么不尝试在 plugins/build.sbt 中写
scalaVersion := "2.9.1"? -
@om-nom-nom - 不幸的是,我编辑了问题并添加了错误行。无法建造。我不想写
scalaVersion := "2.9.1",因为我希望我的 project 工件针对 2.9.2 发布。但是愚蠢的 sbt 0.11.3 只接受 2.9.1 的 plugins。这就是为什么它们只存在于 2.9.1 的在线版本(如想法插件)。但现在它突然改变了主意,想要 2.9.2。我总是试图公开为 sbt 辩护,但这些时刻让我严重怀疑自己的善意。 -
无论如何,您也可以在 build.sbt 中为插件设置 scala 版本。我已经用 2.10-SNAPSHOT 完成了这项工作,效果很好
-
我该怎么做? - 如果您将其粘贴为答案,我很有可能会用该答案结束问题:)
-
尝试清除您的项目/项目/目标目录(这是编译后的项目配置所在的位置)