启动使用SORM框架的scala项目时出错

启动使用SORM框架的scala项目时出错,scala,intellij-idea,playframework,sbt,sorm,Scala,Intellij Idea,Playframework,Sbt,Sorm,我从以下内容创建了简单的sbt项目: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "

我从以下内容创建了简单的sbt项目:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1
    at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.parse(ToolBoxFactory.scala:414)
    at sorm.persisted.PersistedClass$.createClass(PersistedClass.scala:107)
    at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125)
    at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125)
    at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194)
    at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
    at sorm.persisted.PersistedClass$$anon$1.resolve(PersistedClass.scala:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sorm.persisted.PersistedClass$.apply(PersistedClass.scala:129)
    at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239)
    at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239)
    at embrace.package$EmbraceAny$.$$extension(package.scala:6)
    at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239)
    at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239)
    at scala.collection.immutable.Set$Set3.foreach(Set.scala:145)
    at sorm.Instance$Initialization.<init>(Instance.scala:239)
    at sorm.Instance.<init>(Instance.scala:38)
    at test.Db$.<init>(Main.scala:15)
    at test.Db$.<clinit>(Main.scala)
    at test.Main$.delayedEndpoint$test$Main$1(Main.scala:29)
    at test.Main$delayedInit$body.apply(Main.scala:27)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at test.Main$.main(Main.scala:27)
    at test.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1
    ... 38 more
Caused by: java.lang.ClassNotFoundException: scala.runtime.java8.JFunction1
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 38 more
build.sbt:

lazy val sorm_test = (project in file(".")).
settings(
  name := "SORM_TEST",
  scalaVersion := "2.11.7",
  libraryDependencies ++= Seq(
    "org.sorm-framework" % "sorm" % "0.3.18",
    "com.h2database" % "h2" % "1.4.188"
  )
)
package test

case class Artist(
  names : Map[Locale, Seq[String]],
  genres : Set[Genre]
)

case class Genre(
  names : Map[Locale, Seq[String]]
)

case class Locale(
  code : String
)

import sorm._

object Db extends Instance(
  entities = Set(
    Entity[Artist](),
    Entity[Genre](),
    Entity[Locale](unique = Set() + Seq("code"))
  ),
  url = "jdbc:h2:mem:test",
  user = "",
  password = "",
  initMode = InitMode.Create
)

object Main extends App {
  // init
  Db.##
}
test.Main.scala:

lazy val sorm_test = (project in file(".")).
settings(
  name := "SORM_TEST",
  scalaVersion := "2.11.7",
  libraryDependencies ++= Seq(
    "org.sorm-framework" % "sorm" % "0.3.18",
    "com.h2database" % "h2" % "1.4.188"
  )
)
package test

case class Artist(
  names : Map[Locale, Seq[String]],
  genres : Set[Genre]
)

case class Genre(
  names : Map[Locale, Seq[String]]
)

case class Locale(
  code : String
)

import sorm._

object Db extends Instance(
  entities = Set(
    Entity[Artist](),
    Entity[Genre](),
    Entity[Locale](unique = Set() + Seq("code"))
  ),
  url = "jdbc:h2:mem:test",
  user = "",
  password = "",
  initMode = InitMode.Create
)

object Main extends App {
  // init
  Db.##
}
当我在intellij中运行此项目时,我有以下例外情况:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1
    at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.parse(ToolBoxFactory.scala:414)
    at sorm.persisted.PersistedClass$.createClass(PersistedClass.scala:107)
    at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125)
    at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125)
    at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194)
    at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
    at sorm.persisted.PersistedClass$$anon$1.resolve(PersistedClass.scala:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sorm.persisted.PersistedClass$.apply(PersistedClass.scala:129)
    at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239)
    at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239)
    at embrace.package$EmbraceAny$.$$extension(package.scala:6)
    at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239)
    at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239)
    at scala.collection.immutable.Set$Set3.foreach(Set.scala:145)
    at sorm.Instance$Initialization.<init>(Instance.scala:239)
    at sorm.Instance.<init>(Instance.scala:38)
    at test.Db$.<init>(Main.scala:15)
    at test.Db$.<clinit>(Main.scala)
    at test.Main$.delayedEndpoint$test$Main$1(Main.scala:29)
    at test.Main$delayedInit$body.apply(Main.scala:27)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at test.Main$.main(Main.scala:27)
    at test.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1
    ... 38 more
Caused by: java.lang.ClassNotFoundException: scala.runtime.java8.JFunction1
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 38 more
SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。
SLF4J:默认为无操作(NOP)记录器实现
SLF4J:参见http://www.slf4j.org/codes.html#StaticLoggerBinder 详情请参阅。
线程“main”java.lang.BootstrapMethodError:java.lang.NoClassDefFoundError:scala/runtime/java8/JFunction1中出现异常
位于scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.parse(ToolBoxFactory.scala:414)
在sorm.persisted.PersistedClass$.createClass(PersistedClass.scala:107)
在sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125)
在sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125)
位于scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194)
位于scala.collection.mutable.AbstractMap.GetOrelsUpdate(Map.scala:80)
在sorm.persisted.PersistedClass$$anon$1.resolve处(PersistedClass.scala:125)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
在sorm.persisted.PersistedClass$.apply处(PersistedClass.scala:129)
在sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239)
在sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239)
在inclusion.package$incluseAny$.$$扩展(package.scala:6)
在sorm.Instance$Initialization$$anonfun$9.apply处(Instance.scala:239)
在sorm.Instance$Initialization$$anonfun$9.apply处(Instance.scala:239)
位于scala.collection.immutable.Set$Set3.foreach(Set.scala:145)
在sorm.Instance$初始化时。(Instance.scala:239)
在sorm.Instance.(Instance.scala:38)
test.Db$(Main.scala:15)
在test.Db$(Main.scala)时
在test.Main$.delayedEndpoint$test$Main$1处(Main.scala:29)
在test.Main$delayedInit$body.apply中(Main.scala:27)
在scala.Function0$class.apply$mcV$sp处(Function0.scala:34)
在scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)中
位于scala.App$$anonfun$main$1.apply(App.scala:76)
位于scala.App$$anonfun$main$1.apply(App.scala:76)
位于scala.collection.immutable.List.foreach(List.scala:381)
位于scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
位于scala.App$class.main(App.scala:76)
在test.Main$.Main处(Main.scala:27)
at test.Main.Main(Main.scala)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
原因:java.lang.NoClassDefFoundError:scala/runtime/java8/JFunction1
... 38多
原因:java.lang.ClassNotFoundException:scala.runtime.java8.JFunction1
位于java.net.URLClassLoader.findClass(URLClassLoader.java:381)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 38多

当我使用
sbt run
时,它是正常的。当我将SORM与Play框架集成时,也会引发此异常。我怎样才能解决这个问题

我通过向我的sbt配置中添加
dependencyOverrides+=“org.scala lang”%”scala编译器“%scalaVersion.value
,解决了这个问题。

在运行期间,我在maven项目中收到一个非常类似的异常:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1
    at scala.tools.reflect.ToolBoxFactory$ToolBoxImpl.parse(ToolBoxFactory.scala:414)
    at sorm.persisted.PersistedClass$.createClass(PersistedClass.scala:107)
    at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125)
    at sorm.persisted.PersistedClass$$anon$1$$anonfun$resolve$1.apply(PersistedClass.scala:125)
    at scala.collection.mutable.MapLike$class.getOrElseUpdate(MapLike.scala:194)
    at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:80)
    at sorm.persisted.PersistedClass$$anon$1.resolve(PersistedClass.scala:125)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sorm.persisted.PersistedClass$.apply(PersistedClass.scala:129)
    at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239)
    at sorm.Instance$Initialization$$anonfun$9$$anonfun$apply$16.apply(Instance.scala:239)
    at embrace.package$EmbraceAny$.$$extension(package.scala:6)
    at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239)
    at sorm.Instance$Initialization$$anonfun$9.apply(Instance.scala:239)
    at scala.collection.immutable.Set$Set3.foreach(Set.scala:145)
    at sorm.Instance$Initialization.<init>(Instance.scala:239)
    at sorm.Instance.<init>(Instance.scala:38)
    at test.Db$.<init>(Main.scala:15)
    at test.Db$.<clinit>(Main.scala)
    at test.Main$.delayedEndpoint$test$Main$1(Main.scala:29)
    at test.Main$delayedInit$body.apply(Main.scala:27)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
    at scala.App$class.main(App.scala:76)
    at test.Main$.main(Main.scala:27)
    at test.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction1
    ... 38 more
Caused by: java.lang.ClassNotFoundException: scala.runtime.java8.JFunction1
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 38 more
    Caused by: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/runtime/java8/JFunction0$mcI$sp
我目前正在使用

    <scala.version>2.11.7</scala.version>
    <scala.compat.version>2.11</scala.compat.version>
    <scalatest.version>2.2.2</scalatest.version>
    <scala-maven-plugin.version>3.2.0</scala-maven-plugin.version>
2.11.7
2.11
2.2.2
3.2.0
在pom属性中,并在所有其他条目中引用这些属性,如

        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
        </dependency>

org.scala-lang
scala图书馆
${scala.version}

Maven包装/安装工作正常。这是一个类似的问题吗?有人能解释上面的解决方案吗(或者可以将其转换为maven案例)?

这可能值得提出自己的问题。这不是答案。