我已经在下面创建了 Java 注释(因为我需要运行时保留)$PROJECT/src/main/java
我的 scala 代码使用了这些 java 注释$PROJECT/src/main/scala
。这样创建的 Java 注释也使用 Java ENUM 作为它的值。
如果我编译该项目,那么 sbt 似乎不会首先编译 Java 注释,并且在注释中每次使用枚举时都会出错。如果我在 scala 代码的注释中注释掉 Java 枚举的所有用法并进行编译,取消注释枚举用法并再次编译,那么一切都可以正常工作。
如何确保 sbt 编译我的 java 注释和枚举(即$PROJECT/src/main/java
)在进行干净构建时尝试编译 scala 代码之前?
编辑:我有一个简单的 build.sbt 并且正在使用 sbt 0.11.2
一些好消息:这是一个已知问题并已解决。
一些坏消息:它在 2.10 中得到了解决,并且该修复可能不会向后移植到 2.9.3(在问题线程中引用 Paul Phillips):
我已将其标记为向后移植,但这并不能保证;我不
现在有时间做,但我希望在不久的将来。
一些好消息:如果您停留在 2.10 之前的版本并且您的 Java 源代码不依赖于 Scala 源代码,你只需添加以下内容即可给你的build.sbt
一切都很好:
compileOrder := CompileOrder.JavaThenScala
一些坏消息:如果您停留在 2.10 之前的版本,并且您的 Java 源代码确实依赖于您的 Scala 源代码,那么我很确定您运气不佳,而注释-编译-取消注释技巧可能是您最好的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)