小编Not*_*ing的帖子

SBT:如何在 build.sbt 中引用其他项目源代码?

我有一个 Scala.js 项目,想使用 SBT sourceGenerators 设置在编译时生成一些代码。在下面的 SBT 文件中,如果我对 sourceGenerators 部分中的字符串进行硬编码,或者如果我引用“project”目录中定义的 Scala 代码,一切都会正常。

然而,我想要做的是让我的 build.sbt 文件引用一个完全独立的“生成器”项目中的源代码。我已经尝试了各种依赖于 RootProject(file("path-to-generator-project")) 的方法,但似乎没有任何效果。谁能帮我弄清楚如何让 build.sbt 代码引用从另一个项目中的源代码构建的类?

编辑:编辑以添加我正在尝试做的示例。

如果我的文件夹结构如下所示:

MyScalaJSProject
  build.sbt
  client
  server
  shared
  generator
    src/main/scala/Generator.scala
    (object with a generate: String method)
    build.sbt (generator is its own root level project)
Run Code Online (Sandbox Code Playgroud)

使用该结构,我希望我的顶级 build.sbt 能够引用 Generator.generate 来生成用于 sourceGenerators 的字符串。但是如果我在下面的 build.sbt 中调用 Generator.generate ,我会得到一个构建错误,因为我的顶级项目 build.sbt 不知道生成器项目。

import sbt.Project.projectToRef

lazy val clients = Seq(client)

lazy val server = (project in file("server")).settings(
  name := "ServerProject",
  scalaVersion := "2.11.8",
  scalaJSProjects := clients,
  pipelineStages := …
Run Code Online (Sandbox Code Playgroud)

scala sbt

3
推荐指数
1
解决办法
2047
查看次数

标签 统计

sbt ×1

scala ×1