设置 sbt 程序集 v0.14.2 的问题
Posted
技术标签:
【中文标题】设置 sbt 程序集 v0.14.2 的问题【英文标题】:issue with setting up sbt assembly v0.14.2 【发布时间】:2016-06-29 16:47:19 【问题描述】:我正在使用 sbt v0.13.9 和 scala v2.11.7。我曾尝试将 sbt 程序集插件添加到 assembly.sbt 以及 plugin.sbt 但均未成功:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.2")
我尝试将 sbt 原生打包程序添加到 plugin.sbt,但我得到了同样的错误(复制如下):
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.0-RC1"
我的 build.sbt 中有以下解析器 - 我猜我需要为 sbt 程序集添加解析器(即使该站点上的文档没有提及它):
Resolver.sonatypeRepo("public"),
Resolver.sbtPluginRepo("releases"),
Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns),
我得到的错误如下:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.eed3si9n#sbt-assembly;0.14.2: not found
[warn] :: com.typesafe.sbt#sbt-native-packager;1.1.0-RC1: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] com.eed3si9n:sbt-assembly:0.14.2 (scalaVersion=2.11, sbtVersion=0.13)
[warn] com.typesafe.sbt:sbt-native-packager:1.1.0-RC1 (scalaVersion=2.11, sbtVersion=0.13)
[warn]
[warn] Note: Unresolved dependencies path:
[warn] com.eed3si9n:sbt-assembly:0.14.2 (scalaVersion=2.11, sbtVersion=0.13) (/home/test/test-server/plugins.sbt#L4-5)
[warn] +- com.test:test-server_2.11:1.0.0
[warn] com.typesafe.sbt:sbt-native-packager:1.1.0-RC1 (scalaVersion=2.11, sbtVersion=0.13) (/home/tets/test-server/plugins.sbt#L6-7)
我应该更改 scala 或 sbt 版本以使其正常工作吗?
【问题讨论】:
【参考方案1】:从上面的错误消息来看,您的 plugins.sbt 似乎在您的项目根目录中——它应该在 ./project/ 子目录中(即 /home/tets/test-server/project/ )。对 sbt-assembly 的引用放在 ./project/assembly.sbt 中,对 sbt-native-packager 的引用放在 ./project/plugins.sbt 中
【讨论】:
感谢@ffxtian。我最初在我的项目子目录中有 assembly.sbt(对于 plugins.sbt 也是如此) - 它不起作用。然后我将它移动到项目根目录,结果相同。还有其他想法吗?您能否指出 github 上的一个项目,该设置实际有效(尤其是 scala v2.11.7 或更早版本)和 sbt 0.13.9 问题是我的 assembly.sbt 文件中的拼写错误。如果文件 assembly.sbt 在项目子目录中,这将起作用。以上是关于设置 sbt 程序集 v0.14.2 的问题的主要内容,如果未能解决你的问题,请参考以下文章
为啥执行“sbt 程序集”失败并显示“不是有效的命令:程序集”?