我目前正在尝试从gradle 4.8.1升级到5.1.1但是无法为我们的代码生成hibernate元模型。
问题是gradle 5忽略了使用编译类路径传递的注释处理器,但我找到的所有插件都使用它(即"-proc:only"
)。
我试图明确指定注释处理器,如gradle(https://docs.gradle.org/4.6/release-notes.html#convenient-declaration-of-annotation-processor-dependencies)annotationProcessor 'org.hibernate:hibernate-jpamodelgen'
所指出的那样
但这没有帮助,我仍然得到以下错误:
警告:未请求编译但未找到处理器的注释处理。
也许插件需要更新,但正如我所说的,我发现所有插件都是通过类路径传递注释处理器。我们目前正在使用这个:https://github.com/Catalysts/cat-gradle-plugins/tree/master/cat-gradle-hibernate-plugin
你可以删除jpa modelgen的插件,然后使用
annotationProcessor('org.hibernate:hibernate-jpamodelgen:<version>')
另外,我使用这些设置来配置生成的代码应该存在的位置。
tasks.withType(JavaCompile) {
options.annotationProcessorGeneratedSourcesDirectory = file("src/generated/java")
}
sourceSets {
generated {
java {
srcDirs = ['src/generated/java']
}
}
}