Мы используем queryDSL в нашем проекте вместе с препроцессором, который генерирует классы для наших объектов и проекций.
Дело в том, что у нас довольно большое монолитное приложение со многими сущностями, распределенными по пакетам. Теперь у нас есть зависимость задачи gradle compileJava от generateQueryDSL, поэтому классы обновляются каждый раз, когда что-то меняется в нашем коде. Проблема в том, что это занимает некоторое время и происходит, даже если я делаю какие-то незначительные вещи, вообще не связанные с JPA. Это также заставляет наш цикл unitTest расти очень сильно. То, что мы хотели бы сделать, это запустить его, только если изменение кода включало новую / измененную / удаленную сущность / проекцию.
Может быть, какая-нибудь проверка, которая пометит задачу gradle как UP-TO-DATE?
Текущая задача generateQueryDSL выглядит следующим образом:
task generateQueryDSL(type: JavaCompile) {
description 'Generates the QueryDSL query types'
source = sourceSets.main.groovy
classpath = configurations.compile + configurations.compileOnly + configurations.querydslapt
options.compilerArgs = [
"-proc:only",
"-processor", "com.querydsl.apt.jpa.JPAAnnotationProcessor"
]]
destinationDir = sourceSets.generated.java.srcDirs.iterator().next()
}