【发布时间】:2012-02-14 16:29:27
【问题描述】:
我正在使用 Scala 模板引擎 (Scalate) 在 OSGi 环境 (Scala 2.9.1) 中在运行时编译模板。模板无法预编译,因为它们是动态构建的。
为了使其工作,Scala 编译器需要在 OSGi 环境中运行。但是,由于 Scala 编译器不能将类加载器作为输入,所以这不是开箱即用的。
根据我的研究,似乎有两种通用的解决方法:
1) 一个 scala 编译器插件(there is one started here,但自 2009 年以来就没有被触及,messages on the scala list in 2009 表示它还没有准备好用于生产。
2) 在捆绑上下文之上创建一个虚拟文件系统,然后可以由 Scala 编译器使用。显然 Apache sling 的家伙已经 successfully 在旧版本的 Scala 上使用了这种方法。
有没有人让 Scalate、Scala 2.9.1 和 OSGi 一起工作以动态编译模板?
【问题讨论】:
-
Apache Sling 的 Scala 脚本引擎已经搬到了自己的家github.com/guggla/guggla。它目前在 Scala 2.9 上,但让它与 2.9.1 一起工作应该不会太难。有关更多信息,请参阅我的会议幻灯片 people.apache.org/~mduerig/scala4sling 和 people.apache.org/~mduerig/scala4scripting
-
@michid:太好了,感谢您的链接。将进一步调查。