我有一个用于多个项目的Build.scala。
其中两个项目使用ScalaJs交叉编译。
其他一个项目是一个纯Scala项目,它想要访问一些ScalaJs生成的Javascript文件。
(最好只从ScalaJs项目中访问那些.js文件,但我正在尝试在现有项目层次结构的基础上添加用ScalaJs实现的功能,其中REST API已在其中一个中实现现有项目,没有彻底改变后者。)
理想情况下,我想在“app”项目中添加一项新任务,即
我知道如何通过调用另一个任务来扩展任务,但是当调用的任务不在同一个项目中时,我不知道该怎么做。
这可能吗?
或者还有另一种方法吗?
我考虑在ScalaJs项目中扩展fastOptJS / fullOptJS,将.js文件“推送”到他们想要在app项目中的位置,但这感觉倒退了。 (也许这是最简单的方法吗?)
感谢您的帮助, - 史蒂夫
答案 0 :(得分:6)
最简单的方法是将fastOpt
添加到“app”设置中的资源中:
resources in Compile += (fastOptJS in Compile in scalaJSProject).value.data
如果您需要将文件放在特殊位置,可以将资源生成器添加到复制fastOpt
文件的“app”项目中:
resourceGenerators in Compile += Def.task {
val trg = (resourceManaged in Compile).value / "jsStuff.js"
IO.copyFile((fastOptJS in Compile in scalaJSProject).value.data, trg)
Seq(trg)
}.taskValue