首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带dotty的运行时记录器异常

带dotty的运行时记录器异常
EN

Stack Overflow用户
提问于 2018-09-02 06:50:00
回答 1查看 209关注 0票数 0

我的项目依赖scala日志库,我正在尝试升级我的项目以使用dotty。为此,我从https://github.com/lampepfl/dotty-example-project克隆了示例dotty项目,并更新了它,其中包括日志库。项目目录结构如下:

代码语言:javascript
复制
[hduser@dotty dotty-example-project]$ tree
.
├── build.sbt
├── project
│   ├── build.properties
│   ├── plugins.sbt
│   └── project
└── src
    └── main
        └── scala
            └── Main.scala

5 directories, 4 files

项目/建筑.属性:-

代码语言:javascript
复制
sbt.version=1.1.6

项目/plugins.sbt

代码语言:javascript
复制
addSbtPlugin("ch.epfl.lamp" % "sbt-dotty" % "0.2.2")

build.sbt

代码语言:javascript
复制
libraryDependencies += ("com.typesafe.scala-logging" %% "scala-logging" % "3.7.2").withDottyCompat(scalaVersion.value)

libraryDependencies += ("ch.qos.logback" % "logback-classic" % "1.1.2").withDottyCompat(scalaVersion.value)

lazy val root = project
  .in(file("."))
  .settings(
    name := "dotty-example-project",
    description := "Example sbt project that compiles using Dotty",
    version := "0.1.0",

    scalaVersion := "0.9.0-RC1"
  )

src/main/scala/Main.scala

代码语言:javascript
复制
import com.typesafe.scalalogging.LazyLogging

object Main extends LazyLogging{

    def main(args : Array[String]) : Unit = {
        logger.debug("Hello Dotty")
    }
}

上面的scala代码可以很好地编译

sbt干净编译

但是sbt运行失败,错误如下:

代码语言:javascript
复制
[info] Running Main
[error] (run-main-0) java.lang.NoSuchMethodError: com.typesafe.scalalogging.Logger.debug(Ljava/lang/String;)V
[error] java.lang.NoSuchMethodError: com.typesafe.scalalogging.Logger.debug(Ljava/lang/String;)V
[error]     at Main$.main(Main.scala:6)
[error]     at Main.main(Main.scala)
[error]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[error]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[error]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:498)
[error]     at sbt.Run.invokeMain(Run.scala:93)
[error]     at sbt.Run.run0(Run.scala:87)
[error]     at sbt.Run.execute$1(Run.scala:65)
[error]     at sbt.Run.$anonfun$run$4(Run.scala:77)
[error]     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error]     at sbt.util.InterfaceUtil$$anon$1.get(InterfaceUtil.scala:10)
[error]     at sbt.TrapExit$App.run(TrapExit.scala:252)
[error]     at java.lang.Thread.run(Thread.java:748)
[error] java.lang.RuntimeException: Nonzero exit code: 1
[error]     at sbt.Run$.executeTrapExit(Run.scala:124)
[error]     at sbt.Run.run(Run.scala:77)
[error]     at sbt.Defaults$.$anonfun$bgRunTask$5(Defaults.scala:1185)
[error]     at sbt.Defaults$.$anonfun$bgRunTask$5$adapted(Defaults.scala:1180)
[error]     at sbt.internal.BackgroundThreadPool.$anonfun$run$1(DefaultBackgroundJobService.scala:366)
[error]     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
[error]     at scala.util.Try$.apply(Try.scala:209)
[error]     at sbt.internal.BackgroundThreadPool$BackgroundRunnable.run(DefaultBackgroundJobService.scala:289)
[error]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error]     at java.lang.Thread.run(Thread.java:748)
[error] (Compile / run) Nonzero exit code: 1
[error] Total time: 1 s, completed Sep 1, 2018 6:02:01 AM

正如建议的这里,这可能是因为宏。

好心的建议,因为我的周末项目有一个依赖于loggin,我想升级它为多蒂。

EN

回答 1

Stack Overflow用户

发布于 2018-09-02 10:13:52

目前,您唯一能做的就是找到另一个不需要调用宏来使用它的日志依赖项(或者检查scala日志的源代码,看看是否有一种不需要宏的替代调用方法)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52134652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档