首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SBT中导入scala.tools.reflect.ToolBox时出错

在SBT中导入scala.tools.reflect.ToolBox时出错
EN

Stack Overflow用户
提问于 2018-09-17 00:29:52
回答 1查看 1.2K关注 0票数 2

作为子项目的一部分,我正在尝试用SBT编译以下代码。

代码语言:javascript
复制
package bitstream.compiler
package eval

import scala.reflect.runtime.universe._
import scala.reflect.runtime.currentMirror
import scala.tools.reflect.ToolBox

// Based on code from:
// https://gist.github.com/xuwei-k/9ba39fe22f120cb098f4
object Eval {

  def apply[A](tree: Tree): A = {
    val toolbox = currentMirror.mkToolBox()
    toolbox.eval(tree).asInstanceOf[A]
  }

}

这是我的build.sbt

代码语言:javascript
复制
lazy val commonSettings = Seq(
  organization := "com.bitbucket.example-project",
  scalaVersion := "2.12.6"
)

lazy val root = (project in file("."))
  .settings(
    commonSettings,
    version := "0.1.0-SNAPSHOT",
    name := "example-project"
  )

lazy val plugin = (project in file("plugin"))
  .settings(
    commonSettings,
    scalacOptions += "-J-Xss256m",
    name := "plugin",
    libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value
  )
  .dependsOn(root)

libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5" % Test
libraryDependencies += "org.scala-lang" % "scala-reflect" % scalaVersion.value

我尝试使用plugin/package编译plugin子项目,得到错误object tools is not a member of package scala。据我所知,scala.tools应该是由scala-compiler依赖提供的。我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-09-17 06:13:32

scala.tools.reflect.ToolBox在scala编译器.jar中。试试libraryDependencies += "org.scala-lang" % "scala-compiler" % scalaVersion.value。Sbt并不假定您将直接使用scala-piler.jar中的类。-这在https://www.scala-sbt.org/1.0/docs/Configuring-Scala.html中有说明

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

https://stackoverflow.com/questions/52356161

复制
相关文章

相似问题

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