Mic*_*luk 1 antlr4 gradle-plugin
我正在尝试在 gradle 中设置 Antlr 任务,以在与包名称匹配的文件夹中生成源。
我尝试将包添加到语法的 @header 中,但这不会像 IntelliJ Antlr 插件那样生成包文件夹树。我还尝试按照下面的示例将包传递给属性来使用 CLI 参数。
generateGrammarSource {
maxHeapSize = "64m"
arguments += ["-package my.package.name", "-visitor"]
}
Run Code Online (Sandbox Code Playgroud)
然而我得到的是
任务:generateGrammarSource FAILED错误(2):未知的命令行选项-package my.package.name
当我将-package和my.package.name放入单独的条目 ( ["-package", "my.package.name", "-visitor"]) 时,代码生成会运行,但既不会将包添加到代码中,也不会创建文件夹。好像被忽略了
我使用 Antlr 版本 4.7.2,并且 gradle 与 intellij 191 捆绑在一起。
是否有一种特定于 gradle 的方法可以根据包名称设置 antlr 插件的输出位置?
查看一个旧项目,我使用以下配置与包装器 at4.10.2以及与之捆绑的任何 antlr 插件版本:
generateGrammarSource {
outputDirectory = file("$outputDirectory/org/mellowd/compiler")
arguments += ['-package', 'org.mellowd.compiler']
arguments += ['-visitor']
arguments += ['-no-listener']
inputs.files(source.files)
}
Run Code Online (Sandbox Code Playgroud)
inputs.files(source.files)当时是必需的,因为尽管语法发生了变化,但该任务被错误地认为是最新的,不确定该部分是否仍然是必要的。
您有责任确保输出目录中的路径与指定的包的路径匹配。
| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |