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