sbt - 无法下载程序集插件

Gau*_*hah 3 scala sbt

我正在尝试使用 sbt 程序集插件来构建胖 (uber) jar。但是,我似乎无法下载插件本身。

插件.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10" )
Run Code Online (Sandbox Code Playgroud)

生成.sbt

lazy val root = (project in file(".")).
  settings(
    name := "DemoSparkListener",
    version := "1.0",
    scalaVersion := "2.11.12",
    mainClass in Compile := Some("DemoSparkListener")
  )
Run Code Online (Sandbox Code Playgroud)

错误

    [error] sbt.librarymanagement.ResolveException: Error downloading com.eed3si9n:sbt-assembly;sbtVersion=1.0;scalaVersion=2.11:0.14.10
[error]   Not found
[error]   Not found
[error]   not found: /Users/gaurang.shah/.ivy2/local/com.eed3si9n/sbt-assembly/scala_2.11/sbt_1.0/0.14.10/ivys/ivy.xml
[error]   not found: https://repo1.maven.org/maven2/com/eed3si9n/sbt-assembly_2.11_1.0/0.14.10/sbt-assembly-0.14.10.pom
Run Code Online (Sandbox Code Playgroud)

Gau*_*hah 6

最后想办法解决。

并非所有版本的assembly插件都适用于所有版本的scala. 我没有找到任何显示此兼容性矩阵的文档。但是,您可以从这里找到答案。

http://dl.bintray.com/sbt/sbt-plugin-releases/com.eed3si9n/sbt-assembly/

在此处输入图片说明

http://dl.bintray.com/sbt/sbt-plugin-releases/com.eed3si9n/sbt-assembly/scala_2.12/sbt_1.0/ 在此处输入图片说明

所以这就是我所做的。我添加了URL Resolver插件。其中根据 找到 JAR 的 URL Scala VersionSBT version以及您的Plugin Version.

根据上面的 URL,我选择使用哪个版本的 sbt 版本和 Scala 版本。

插件.sbt

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.10" )
resolvers += Resolver.url("bintray-sbt-plugins", url("http://dl.bintray.com/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
Run Code Online (Sandbox Code Playgroud)

生成.sbt

lazy val root = (project in file(".")).
  settings(
    name := "DemoSparkListener",
    version := "1.0",
    scalaVersion := "2.12.0",
    mainClass in Compile := Some("DemoSparkListener")
  )
Run Code Online (Sandbox Code Playgroud)