如何使用Gradle 5.x生成JPA元模型

FKo*_*rni 10 java hibernate jpa gradle metamodel

我目前正在尝试从gradle 4.8.1升级到5.1.1,但是无法为我们的代码生成休眠元模型。

问题是gradle 5忽略了与编译类路径一起传递的注释处理器,但是我发现的所有插件都使用了这个(即"-proc:only")。

我试图按照gradle的指示明确指定注释处理器(https://docs.gradle.org/4.6/release-notes.html#convenient-declaration-of-annotation-processor-dependenciesannotationProcessor 'org.hibernate:hibernate-jpamodelgen'

但这无济于事,我仍然收到以下错误:

警告:注释处理未进行编译,但未找到处理器。

也许插件也需要更新,但是正如我所说,我发现所有插件都将注释处理器与类路径一起传递。我们目前正在使用这个:https : //github.com/Catalysts/cat-gradle-plugins/tree/master/cat-gradle-hibernate-plugin

M. *_*ett 18

您只需删除jpa modelgen的插件即可使用

annotationProcessor('org.hibernate:hibernate-jpamodelgen:<version>')
Run Code Online (Sandbox Code Playgroud)

另外,我使用这些设置来配置所生成代码的位置。

tasks.withType(JavaCompile) {
  options.annotationProcessorGeneratedSourcesDirectory = file("src/generated/java")
}


sourceSets {
    generated {
        java {
            srcDirs = ['src/generated/java']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 生成的代码应与原始实体类位于同一包中,但位于“build”文件夹下。不是吗? (2认同)
  • 对于其他感到困惑的人请注意:“annotationProcessor”位于 build.gradle 的“dependencies”部分。 (2认同)