在sbt-jflex的主要javac阶段(0.12)之前,我正在使用Java通过JFlex生成Java源代码。
这个插件是ANTLR插件的克隆,我找到了this question,它展示了如何使用后者。
因此,我在project/plugins.sbt中有以下内容
addSbtPlugin("org.scalanlp" % "sbt-jflex" % "0.1-SNAPSHOT") 这是./build.sbt格式的
jflexSettings
sourceGenerators in Compile <+= generate in jflex但我一定是做错了什么,否则javac阶段会先于源代码生成器出现,因为当我运行sbt compile时,我永远看不到消息"JFlex: Using JFlex version X to generate source files"。相反,sbt直接编译Java源代码
[info] Compiling 91 Java sources to ...然后失败,因为在该阶段缺少JFlex输出。运行source-directories显示确实包含了src/main/jflex,就像target/src_managed/main一样。
发布于 2012-12-16 01:14:31
在尝试注入调试打印后,我发现sbt-jflex插件假设源代码在src/main/flex中,而我的项目中有src/main/jflex。添加以下内容即可修复此问题:
sourceDirectory in jflex <<= (sourceDirectory in Compile) { _ / "jflex" }https://stackoverflow.com/questions/13894108
复制相似问题