尝试使用 sbt 0.11.2 jar 构建红隼

Posted

技术标签:

【中文标题】尝试使用 sbt 0.11.2 jar 构建红隼【英文标题】:Trying to build kestrel using a sbt 0.11.2 jar 【发布时间】:2014-07-07 14:54:24 【问题描述】:

所以我下载了 sbt 0.11.2,因为 kestrel 仅适用于该版本,我也在运行 java 6。

所以我从这里下载了 0.11.2:http://repo.typesafe.com/typesafe/ivy-releases/org.scala-tools.sbt/sbt-launch/0.11.2/sbt-launch.jar

我为 0.11.2 的 sbt-launch.jar 创建了一个文件夹,例如: /sbt/0.11.2/sbt-launch.jar

然后我创建了一个 .sh 文件,它将启动该特定版本的 sbt。

现在,一旦我使用我的 .sh 文件启动 sbt,我就会收到此错误。

我的项目甚至没有引用 sbt-idea 插件,所以它似乎与我当前版本的 sbt 混淆了?

[info] Resolving org.scala-tools.sbt#testing_2.9.1;0.11.2 ...
[info] Resolving org.scala-tools.testing#test-interface;0.5 ...
[info] Resolving org.scala-tools.sbt#compiler-interface;0.11.2 ...
[info] Resolving org.scala-tools.sbt#precompiled-2_8_1;0.11.2 ...
[info] Resolving org.scala-tools.sbt#precompiled-2_8_0;0.11.2 ...
[info] Resolving org.scala-tools.sbt#precompiled-2_9_0;0.11.2 ...
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::          UNRESOLVED DEPENDENCIES         ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: com.github.mpeltonen#sbt-idea;1.4.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:1.4.0 (sbtVersion=0.11.2, scalaVersion=2.9.1)
[warn] 
[error] file:/Users/blah/.sbt/plugins/default-bfa0a6/*:update: sbt.ResolveException: unresolved dependency: com.github.mpeltonen#sbt-idea;1.4.0: not found
Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? q

参考:似乎 0.11.2 是旧的并且具有不同的格式:i need sbt 0.11.2 to build the mongo auth app for lift

如果有人能帮助我正确构建它,我将不胜感激。

【问题讨论】:

【参考方案1】:

问题似乎出在sbt-idea 插件上。

我检查了红隼,但它似乎没有使用插件,所以我敢打赌你已经全局安装或自己添加了它。

由于插件仅与特定版本的 SBT 兼容。我认为您必须禁用该插件或将其降级到支持您正在使用的 SBT 版本的版本。

检查您是否在~/.sbt/0.13/plugins/build.sbt 中定义了插件,而不是在~/.sbt/plugins/build.sbt 中。

但是,如果您使用的是 Idea 13.1 和最新的 Scala 插件,Idea 可以直接导入项目,因此您不需要该插件。

【讨论】:

我在:~/.sbt/plugins/build.sbt 不知道它是如何到达那里的,但为什么它与我的其他 sbt 版本冲突?谢谢! 我认为在旧版本中它是保留它的地方,后来它被改为~/.sbt/<version>/plugins/build.sbt 现在我收到了这个错误[error] Server access Error: Operation timed out url=http://scala-tools.org/repo-releases/com/twitter/scala-parent-292/0.0.4/scala-parent-292-0.0.4.jar 嗯,似乎它比 SBT 本身更像是一个连接问题,尝试使用浏览器访问该文件,它也会失败(至少对我而言) 似乎http://scala-tools.org 不再提供jar,您可能需要声明另一个解析器。

以上是关于尝试使用 sbt 0.11.2 jar 构建红隼的主要内容,如果未能解决你的问题,请参考以下文章

仅使用 sbt 构建带有 Gatling 测试的 jar 文件

如何从 sbt 的包中排除程序集?

在 uber jar 中构建 sbt 项目,而不是单独的子模块 jar

如何使用 scala sbt 构建多个 jar 文件

如何使用 sbt-assembly 和 sbt-native-packager 构建 deb 包以包含单个程序集 jar?

运行使用 SBT 和 ProGuard 构建的独立 jar 时出现 AbstractMethodError