我正在尝试使用SBT生成一些样板(对我来说这是一个全新的工具)。我正在使用shapeless sbt文件作为该任务的主要参考。我已经看到这个项目从头开始使用代码生成,但我的情况略有不同,因为我想从另一个类生成一些类。我假装使用新的Scala 2.10.0-M4反射功能。从SBT构建中获得反射需要什么基本配置?
到目前为止,sbt无法找到 scala.reflect.runtime.universe 包,我不知道问题是来自新的Scala jar部门还是来自错误的配置。此外,我的关于说:
[info] This is sbt 0.13.0-20120530-052139
[info] The current project is {file:/home/jlg/sandbox/abc/}abc
[info] The current project is built against Scala 2.10.0-SNAPSHOT
[info]
[info] sbt, sbt plugins, and build definitions are using Scala 2.9.2
顺便说一句,是否有人知道使用SBT生成源代码的其他项目?
答案 0 :(得分:3)
当前的SBT版本基于Scala 2.9,源代码生成与SBT一起运行,具有相同的库。基本上有两种选择:
ScalaSigParser
的一些非完全通用的包装器)。用于生成代码的Scalate模板
src/main/resources,这里最相关的是src/main/resources/WrappedClassInlined.ssp。
涉及更多的东西,我担心你会非常需要一个结账并玩它来看看它究竟做了什么 - 但随意提问。请注意,该代码受BSD许可证保护,因此如果您复制代码,则需要保留原始copyright。
注意:所有链接(许可证除外)都是当前HEAD的稳定性,因此即使在将来的版本中移动/删除文件,它们也不会轻易消失。
答案 1 :(得分:1)
如果你使用的是2.10.0-SNAPSHOT,那么你应该去scala.reflect.runtime.universe
。有关详细信息,请查看http://dcsobral.blogspot.ch/2012/07/json-serialization-with-reflection-in.html。