Как объявить процессор аннотации внутри модуля gradle? - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть модули в моем проекте Android.Один из модулей (например, moduleA) использует другой (moduleB) в качестве зависимости:

dependencies {
    api project(':moduleB')
}

А также у меня все еще есть apt и старый плагин gradle.Теперь я удаляю apt из файлов Gradle, обновляю версию плагина и получаю сообщение об ошибке:

Annotation processors must be explicitly declared now.  The following 
dependencies on the compile classpath are found to contain annotation 
processor.  Please add them to the annotationProcessor configuration.
  - moduleB.jar (project :moduleB)

Если мы используем некоторую внешнюю зависимость, мы делаем это (например) для решения этой проблемы:

compile 'com.google.dagger:dagger:2.8'
annotationProcessor 'com.google.dagger:dagger-compiler:2.8'

Но что мне нужно делать с моим случаем, когда процессор аннотирования находится внутри модуля gradle?Не могли бы вы объяснить это, потому что у меня нет глубокого понимания в этой области, и обычно я просто беру эти строки

compile 'com.google.dagger:dagger:2.8'
annotationProcessor 'com.google.dagger:dagger-compiler:2.8'

из хранилища поставщика библиотеки.Я пытаюсь исследовать этот случай, но ничего подобного не нахожу.

1 Ответ

0 голосов
/ 23 ноября 2018

project(':moduleB') - это просто способ указать межпроектные зависимости, как вы делаете с «полными» координатами (com.google.dagger:dagger:2.8).Итак, чтобы использовать другой модуль в качестве процессора аннотаций, просто используйте

dependencies {
    …
    annotationProcessor(project(":moduleB"))
    …
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...