使用sbt JFlex插件生成Java源代码

时间:2012-12-15 16:42:51

标签: sbt jflex

我在{sbt(0.12)的主要javac阶段之前使用sbt-jflex插件通过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/jflextarget/src_managed/main也是如此。

1 个答案:

答案 0 :(得分:0)

在尝试注入调试打印后,我发现sbt-jflex插件假定源位于src/main/flex,而我的项目将它们放在src/main/jflex中。添加以下修复程序:

sourceDirectory in jflex <<= (sourceDirectory in Compile) { _ / "jflex" }