【发布时间】:2019-09-22 11:00:15
【问题描述】:
包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 增量模式。
【问题讨论】:
标签: hibernate jpa gradle metamodel incremental-build