【问题标题】:Gradle annotationProcessor for JOOQ checkerJOOQ 检查器的 Gradle annotationProcessor
【发布时间】: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 位放在哪里。任何帮助将不胜感激!

【问题讨论】:

标签: java sql gradle jooq java-annotations


【解决方案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 开始,使用预定义的 annotationProcessorconfiguration 应该会更简单:

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 问题跟踪器上?
猜你喜欢
  • 2019-05-17
  • 2018-11-04
  • 2022-08-02
  • 2021-12-17
  • 2020-10-21
  • 1970-01-01
  • 2014-10-09
  • 2018-12-27
  • 2023-03-14
相关资源
最近更新 更多