如何使scalatra编译任务依赖于sbt中的scala.js packageJS任务?

如何使scalatra编译任务依赖于sbt中的scala.js packageJS任务?,sbt,scalatra,scala.js,Sbt,Scalatra,Scala.js,我有一个scalatra项目,我想在其中提供从scala.js项目生成的JavaScript 我有一个多项目sbt构建,它允许我成功地构建这两个项目。 也就是说,我可以使用scalatra项目中的编译(和运行)任务;我可以在scala.js项目中使用packageJS任务 但是,我非常希望scalatra编译任务依赖于scala.js packageJS任务;因此,在编译Scalatra项目时,Javascript会在Scala.js项目中自动生成 在我的multi-project build.

我有一个scalatra项目,我想在其中提供从scala.js项目生成的JavaScript

我有一个多项目sbt构建,它允许我成功地构建这两个项目。 也就是说,我可以使用scalatra项目中的编译(和运行)任务;我可以在scala.js项目中使用packageJS任务

但是,我非常希望scalatra编译任务依赖于scala.js packageJS任务;因此,在编译Scalatra项目时,Javascript会在Scala.js项目中自动生成

在我的multi-project build.sbt文件中,我尝试了:

lazy val wwwjs = project // Scala.js project

lazy val www = project // Scalatra project
  .dependsOn(wwwjs % "compile->packageJS")
但在编译Scalatra项目时,由于“在wwwjs#wwwjs#U 2.10;0.1:“packageJS”中找不到配置,此操作失败。这是在www#www#U 2.10;0.1 compile中所必需的”

我对sbt(以及Scalatra和Scala.js!)相当陌生——有人能告诉我如何做吗


谢谢:)

您想要的不是项目之间的依赖关系(这是
dependsOn
对项目的依赖关系),而是任务之间的依赖关系

我不熟悉Scalatra,但对于sbt方面,它应该与Play非常相似,我们有一个成功的使用Scala.js的Play项目模板:

特别是,我从上面的构建中获得了以下基本改编:

import scala.scalajs.sbtplugin.ScalaJSPlugin._ // if Build.scala
import ScalaJSKeys._

lazy val wwwjs = project // Scala.js project

lazy val www = project // Scalatra project
  .settings(
    compile in Compile <<= (compile in Compile) dependsOn (fastOptJS in (wwwjs, Compile))
  )
导入scala.scalajs.sbtplugin.ScalaJSPlugin.\u//if Build.scala
导入ScalaJSKeys_
lazy val wwwjs=project//Scala.js project
lazy val www=project//Scalatra项目
.设置(

在compile
preoptimizeJS
中编译应更改为
fastOptJS
fullOptJS
。此外,还有两种必需的导入:
import scala.scalajs.sbtplugin.scalajslugin.\u
import scalajseys.\u