Создание исходных текстов Java с плагином sbt JFlex

Я дергаю себя за волосы, используя плагин sbt-jflex для генерации Java-источников через JFlex, перед основной фазой javac sbt (0.12).

Плагин является клоном плагина ANTLR, и я нашел этот вопрос, который показывает, как использовать последний.

Итак, у меня есть следующее в 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,

1 ответ

Решение

Поиграв с инъекцией отладочных отпечатков, я обнаружил, что плагин sbt-jflex предполагает, что источники находятся в src/main/flex тогда как в моем проекте они есть src/main/jflex, Добавление следующего исправляет это:

sourceDirectory in jflex <<= (sourceDirectory in Compile) { _ / "jflex" }
Другие вопросы по тегам