Добавлю на другие ответы здесь.
выпуск 1: сгенерированные исходные файлы размещаются в папке build/generated-src
.
Я нашел this discussion, но решение там (настройка outputDirectory
) является плохой идея. Если вы сделаете команду gradle clean build
, это очистит ваш весь исходный каталог. Обсуждение здесь дает хорошее объяснение того, почему вы не должны
ANTLR сгенерирована источники генерируются в подкаталоге «построить» папку, как и все другие артефакты, которые генерируется в процессе сборки. Кроме того, сгенерированный каталог projectRoot/build/сгенерированный-src/antlr/main добавлен в определение атрибута java , чтобы убедиться в его рассматриваемой задаче compileJava. Если вы пишете источник, сгенерированный antlr, непосредственно в папку src/main/java , вы загрязняете свою исходную папку выводом вашего процесса сборки . Я думаю, загрязнение вашей исходной папки во время сборки - это antipattern.
Однако, если вы хотите это сделать, вы можете добавить задачу градиента, чтобы скопировать сгенерированные файлы в каталог сборки.
generateGrammarSource << {
println "Copying generated grammar lexer/parser files to main directory."
copy {
from "${buildDir}/generated-src/antlr/main"
into "src/main/java"
}
}
Выпуск 2: Сформирован исходные файлы не имеют пакет набор атрибутов.
Чтобы решить эту проблему, добавьте что-то вроде следующего в верхней части файла грамматики:
@header {
package com.example.my.package;
}
Перейти к github.com и поиск 'ANTLR Gradle'. Предоставлено несколько примеров. – GRosenberg
Мне не нужен рабочий пример, мне нужно понимание того, что требуется, а что нет. – Dims
Рад, что я нашел этот вопрос, не смог найти и мои сгенерированные файлы. И благодаря Гросенбергу за то, что он абсолютно бесполезный человек. – Silverclaw