Отображение сообщения о том, создает ли процессор аннотаций mapstruct файлы или нет - предпочтительнее для моей пользовательской задачи «generateMappers» - PullRequest
0 голосов
/ 20 мая 2019

Предоставлено M.Ricciuti, который ответил на мой начальный 'Миграция с Gradle 4 на 5. Как получить mapstruct 1.20. Окончательная работа с ним' вопрос У меня есть дополнительный вопрос. Создана новая тема, потому что «Добавить комментарий» не позволяет мне использовать достаточно символов / текста.

Я хотел бы, чтобы у меня была задача Gradle 'generateMappers' для генерации исходных файлов mapstruct И отображения сообщения, когда исходные файлы были сгенерированы, и предпочтительнее, который сообщает мне, что ничего не генерируется, потому что это не нужно.

В старой ситуации у нас была задача generateMappers, которая использовала mapstruct для генерации исходных файлов и отображения сообщения при создании файлов. Теперь его в основном пусто.

task generateMappers (type: JavaCompile, dependsOn: compileJava) {
        doFirst {
                println "\tGenerating mapper classes"
        }

        doLast {
                println "\tMapping classes generated"
        }
}

Gradlew -i generateMappers reveals the following. 
> Task :eu.myfirm.rest:generateMappers NO-SOURCE
Skipping task ':eu.myfirm.rest:generateMappers' as it has no source files and no previous output files.
:eu.myfirm.rest:generateMappers (Thread[Execution worker for ':' Thread 4,5,main]) completed. Took 0.0 secs.[enter link description here][1]
NOTE: > Task :eu.myfirm.rest:compileJava FROM-CACHE does trigger correctly ONLY when the sources are not there. 

Изменяя задачу на 'task generateMappers {...}', я ВСЕГДА получаю сообщение - даже когда новые файлы не генерируются, потому что в преобразователях ничего не изменилось. Gradlew - информация показывает

> Task :eu.myfirm.rest:generateMappers
Custom actions are attached to task ':eu.myfirm.rest:generateMappers'.
Caching disabled for task ':eu.myfirm.rest:generateMappers' because:
  Caching has not been enabled for the task
Task ':eu.myfirm.rest:generateMappers' is not up-to-date because:
  Task has not declared any outputs despite executing actions.
        Generating mapper classes
        Mapping classes generated

Это неправильно, потому что кэширование отключено, и я знаю, что это только косметика, потому что, есть ли источники или нет, я всегда получу это сообщение.

У меня такое чувство, что я нахожусь на НЕПРАВИЛЬНОЙ дорожке, и мне как-то нужно подключиться к annotationProcessor , чтобы получить два требуемых сообщения, НО я также хотел бы иметь отдельную задачу generateMappers для вызов. Любые дальнейшие подсказки / указатели очень ценятся.

...