gpt4 book ai didi

scala - 如何通知 SBT 为插件使用特定的 Scala 版本?

转载 作者:行者123 更新时间:2023-12-04 00:47:40 24 4
gpt4 key购买 nike

现在我不知何故弄乱了我的全局 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 仍然试图找到这两个插件。史诗失败。

最佳答案

您可以提供 Scala 版本的插件。我没有使用 ~/.sbt/,但我认为它也可以。

以下是我的项目配置,使用 Scala 2.9.2 作为我的项目编译器,并使用一些从 Scala 2.9.1 编译的插件。由于 Scala 2.9.1 和 Scala 2.9.2 是二进制兼容的,所以我还没有遇到任何问题。

// MyProject/build.sbt

name := "MyProject"

version := "0.1"

scalaVersion := "2.9.2"

以下是插件配置:
// File: MyProject/project/plugins.sbt

import sbt._

import Defaults._

resolvers += Resolver.url("sbt-plugin-releases",
new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(
Resolver.ivyStylePatterns)


// Resolved to:
//
// http://..../com.untyped/sbt-less/scala_2.9.1/sbt_0.11.3/0.4/jars/sbt-less.jar
//
libraryDependencies += sbtPluginExtra(
m = "com.untyped" % "sbt-less" % "0.4", // Plugin module name and version
sbtV = "0.11.3", // SBT version
scalaV = "2.9.1" // Scala version compiled the plugin
)

关于scala - 如何通知 SBT 为插件使用特定的 Scala 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11768730/

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