JOOQ 检查器的 Gradle annotationProcessor
Posted
技术标签:
【中文标题】JOOQ 检查器的 Gradle annotationProcessor【英文标题】:Gradle annotationProcessor for JOOQ checker 【发布时间】:2018-08-06 12:11:53 【问题描述】:Gradle 是否与为 JOOQ 类型检查器注释处理器 (https://www.jooq.org/doc/latest/manual/tools/checker-framework/) 描述的 Maven 配置等效? Maven版本是:
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-checker</artifactId>
<version>3.10.5</version>
</dependency>
和
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<fork>true</fork>
<annotationProcessors>
<annotationProcessor>org.jooq.checker.SQLDialectChecker</annotationProcessor>
</annotationProcessors>
<compilerArgs>
<arg>-Xbootclasspath/p:1.8</arg>
</compilerArgs>
</configuration>
</plugin>
但是,虽然我可以将编译依赖项放入 Gradle,但我不确定将 annotationProcessor
位放在哪里。任何帮助将不胜感激!
【问题讨论】:
相关:***.com/q/15584472/521799 【参考方案1】:Gradle 从 Gradle 3.4 开始支持注释处理器,方法是为处理器添加配置(例如命名为“apt”)并设置 annotationProcessorPath
。详情请见CompileOptions#setAnnotationProcessorPath()
。
例子:
configurations
apt
dependencies
apt 'org.jooq: jooq-checker:3.10.5'
tasks.withType(JavaCompile)
options.annotationProcessorPath = configurations.apt
options.compilerArgs << "-processor" << "org.jooq.checker.SQLDialectChecker"
从 Gradle 4.6 开始,使用预定义的 annotationProcessor
configuration 应该会更简单:
dependencies
annotationProcessor 'org.jooq: jooq-checker:3.10.5'
compileJava.options.compilerArgs << "-processor" << "org.jooq.checker.SQLDialectChecker"
还可以查看Gradle 4.6-rc.2 release notes 了解详情。 当然还有改进的潜力:Make annotation processors a first-class citizen。
当然还有一些用于 Gradle 的 jOOQ 插件,您可能想看看:https://plugins.gradle.org/search?term=jooq
【讨论】:
官方推荐的Gradle插件是github.com/etiennestuder/gradle-jooq-plugin 我不必在任何地方指定org.jooq.checker.SQLDialectChecker
吗?我要运行 Gradle,但它实际上并没有运行 JOOQ 检查器
@GaborAngeli 我已经编辑了答案以包括明确指定注释处理器的必要步骤。
@LukasEder JOOQ 的 Gradel 插件不包含或运行检查器,是吗?
@thee:介意问一个新问题,还是直接在插件的 github 问题跟踪器上?以上是关于JOOQ 检查器的 Gradle annotationProcessor的主要内容,如果未能解决你的问题,请参考以下文章
JOOQ + Gradle:如何为 JOOQ 生成器定义多个模式?
无法使用 gradle-jooq-plugin-3.0.1、jooq-3.11.2 找到或加载主类 org.jooq.codegen.GenerationTool
SQL Server 2017 - 使用 Gradle 生成 JOOQ 代码