我创建了Java注释(因为我需要运行时保留)$PROJECT/src/main/java和我的scala代码,我们使用这些java注释$PROJECT/src/main/scala.这样创建的Java注释也使用Java ENUM作为它的值.
如果我编译项目,那么sbt似乎不会首先编译Java注释,并且在注释中每次使用枚举时都会出错.如果我在scala代码中的注释中注释掉Java枚举的所有用法并进行编译,取消注释枚举用法并再次编译它一切正常.
$PROJECT/src/main/java在执行干净构建时,如何确保sbt 在尝试编译scala代码之前编译我的java注释和枚举(即)?
编辑:我有一个裸骨build.sbt,我正在使用sbt 0.11.2
一些好消息:这是一个已知问题并已得到解决.
一些坏消息:它已在2.10中得到解决,并且修复程序可能无法向后移植到2.9.3(在问题主题中引用Paul Phillips):
我已将此标记为后向移植,这不是保证; 我现在没时间做,但我希望在不久的将来.
一些好消息:如果您坚持使用2.10之前的版本并且您的Java源代码不依赖于您的Scala源代码,那么您只需将以下内容添加到您的内容中即可build.sbt:
compileOrder := CompileOrder.JavaThenScala
Run Code Online (Sandbox Code Playgroud)
一些坏消息:如果你被困在2.10之前并且你的Java源代码依赖于你的Scala源代码,我很确定你运气不好,而评论 - 编译 - 取消注释技巧可能是你最好的选择.