【问题标题】:optimizing hibernate metamodel generation in gradle using hibernate-jpamodelgen使用 hibernate-jpamodelgen 在 gradle 中优化 hibernate 元模型生成
【发布时间】: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


【解决方案1】:

档案的小而快的回复。 我遇到了完全相同的问题,但结果证明 jpamodelgen 中支持 gradle 增量编译器的修复非常简单。

http://hibernate.atlassian.net/browse/HHH-13390 问题现已解决,该修复将包含在即将发布的 5.4.11 版本中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-08
    • 2013-02-26
    • 2021-11-06
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多