оптимизация генерации метамодели гибернации в gradle с использованием hibernate-jpamodelgen - PullRequest
0 голосов
/ 04 мая 2019

Пакет Hibernate-Jpamodelgen представляет собой процессор аннотаций / генератор кода, который работает с классами JPA @Entity.Это часто требуется в приложениях, которые используют JPA Criterion Queries.

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 для поддержки режима постепенного увеличения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...