软件包Hibernate-Jpamodelgen
是在JPA @Entity类上运行的注释处理器/代码生成器。使用JPA标准查询的应用程序中经常需要它。
Gradle提供了“增量编译”模式,但是必须更新插件以支持该模式。从5.4.2.Final版本开始,尚未对JpaModelGen进行更新以提供该支持,这意味着在执行:compile任务时,将重新编译项目中的所有源文件。
我们所有的@Entity类都位于一个包中,位于根目录下5级。
我们正在寻找一种对应用程序进行分区的方法,以使@Entities为
由JpaModelGen正确扫描,但是该应用程序的其余部分仍然能够支持增量编译/构建。
环境:
------------------------------------------------------------
Gradle 5.4
------------------------------------------------------------
Build time: 2019-04-16 02:44:16 UTC
Kotlin: 1.3.21
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.1 (Oracle Corporation 11.0.1+13)
OS: Windows 10 10.0 amd64
gradle.build文件除外:
annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:2.1.4.RELEASE"
compileOnly "org.hibernate:hibernate-jpamodelgen:5.4.2.Final"
testCompileOnly "org.hibernate:hibernate-jpamodelgen:5.4.2.Final"
gradle --info classes
输出摘录:Full recompilation is required because org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor is not incremental.
更新:我们变得更加悲观,因为这样的分区对于我们的应用程序将是成功的,因为实体引用了模型包之外的对象,因此无法对其进行编译,并且如果不访问其余应用程序类就无法生成代码。
最终,解决方案似乎是更新jpa模型生成器以支持gradle增量模式。
最佳答案
小而快速的答复文件。
我面临着完全相同的问题,但是事实证明,在jpamodelgen中支持gradle增量编译器的修复非常简单。
http://hibernate.atlassian.net/browse/HHH-13390问题现已解决,此修复程序将包含在即将发布的5.4.11中
关于hibernate - 使用hibernate-jpamodelgen优化gradle中的 hibernate 元模型生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55977570/