【问题标题】:sbt runtime classPath does not match compile classPath, causes java.lang.NoClassDefFoundErrorsbt 运行时 classPath 与编译 classPath 不匹配,导致 java.lang.NoClassDefFoundError
【发布时间】:2016-02-10 17:31:15
【问题描述】:

根据“show runtime:fullClasspath”的运行时类路径仅包含 target/scala-2.11/classes 和 ~/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.11.7。罐。 compile:fullClasspath 包含 ~/.ivy2/cache 下的所有 libraryDependencies jar 位置。为什么是这样?我在 sbt 运行时收到 java.lang.NoClassDefFoundError。

build.sbt:

name := "my-server"

version := "1.0"

scalaVersion := "2.11.7"

libraryDependencies ++= List(
  "com.typesafe.slick" %% "slick" % "3.1.0" % "provided",
  "com.twitter.finatra" %% "finatra-http" % "2.1.0" % "provided",
  "com.roundeights" %% "hasher" % "1.2.0" % "provided",
  "com.twitter" %% "util-logging" % "6.29.0" % "provided"
)

resolvers +=
  "Twitter" at "http://maven.twttr.com"

resolvers ++= Seq("RoundEights" at "http://maven.spikemark.net/roundeights")

sbt 运行结果:

Exception in thread "main" java.lang.NoClassDefFoundError: com/twitter/logging/Logger

sbt 版本 0.13.8

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    删除“提供”是这里的修复 - 我错误地使用它来解决依赖项的模棱两可的颠覆(归功于 freenode #scala 的 pfn)

    【讨论】:

      猜你喜欢
      • 2015-06-08
      • 2020-11-11
      • 2017-12-03
      • 1970-01-01
      • 2011-02-23
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多