Мы используем mapstruct 1.20.final около 1,5 лет с различными версиями Gradle - последняя версия Gradle 4.10.2.Мы хотим перейти на Gradle 5.4.1, который работает со всем, кроме mapstruct.Наша рабочая установка не была чистой.Поэтому решил начать все сначала.Старая рабочая установка представляла собой гибридную форму примера на Github и теперь устаревшую настройку .
. Началась снова с http://mapstruct.org/news/2013-07-08-using-mapstruct-with-gradle в качестве базы.Это сильное чувство, что это НЕ совместимо с Gradle 5. Примечания к выпуску Состояние Gradle 5: Gradle больше не будет автоматически применять процессоры аннотаций, которые находятся на пути к классам компиляции - используйте вместо этого CompileOptions.annotationProcessorPath.Попытался сделать это, как описано в https://blog.gradle.org/incremental-compiler-avoidance#about-annotation-processors. Это работает для 4.10.2.В Gradle 5 это приводит к следующей ошибке: Не удалось выполнить задачу ': eu.educator.rest: compileJava'.Невозможно указать -processorpath или --processor-path через CompileOptions.compilerArgs.Вместо этого используйте свойство CompileOptions.annotationProcessorPath.
У нас есть многопроектная настройка.В проекте «rest» санированный build.gradle выглядит следующим образом:
plugins {
id 'net.ltgt.apt' version '0.21'
}
configurations {
apt
}
dependencies {
apt libraries.mapstruct_processor
compileOnly libraries.mapstruct_processor
}
compileJava {
options.annotationProcessorPath = configurations.apt
}
Пробовал несколько установок за последние 1,5 дня.НЕ МОЖЕТ заставить его работать.Так что, если у кого-то есть mapstruct, работающий с Gradle 5, я действительно буду признателен за работающий build.gradle, подсказки, указатели.
PS.Как заменить следующее на версию, совместимую с Gradle 5.
tasks.withType(JavaCompile) {
options.compilerArgs = [
'-Amapstruct.suppressGeneratorTimestamp=true'
]
}