Как правильно определить, нужна ли генерация сущностей? - PullRequest
0 голосов
/ 17 января 2019

Мы используем 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()
}
...