У меня есть приложение для Android (модуль app
) и модуль библиотеки Android (модуль lib
), каждый из которых является отдельным проектом Android Studio, но проект приложения добавил lib
в качестве зависимости модуля в своем проекте.
lib
использует Dokka от JetBrain для создания HTML-документации, и ему нужен плагин Dokka для Android Gradle, который определяется в верхнем уровне build.gradle
своего собственного проекта:
buildscript {
dependencies {
// ...
classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18"
}
}
И в build.gradle
модуля lib
мне пришлось добавить следующее
apply plugin: 'org.jetbrains.dokka-android'
android {
// ...
dokka { /* my Dokka config */ }
}
Так что прямо сейчас проект lib
работает и строится нормально, и я могу генерировать HTML-файлы документации с помощью Dokka.
Однако синхронизация Gradle моего проекта приложения теперь завершается сбоем, поскольку в нем говорится: «Плагин с идентификатором org.jetbrains.dokka-android не найден». Если я добавлю classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18"
к верхнему уровню build.gradle
моего проекта приложения, тогда он будет работать нормально.
Мой вопрос: как сообщить основному проекту (приложению), что зависимость classpath для Dokka уже объявлена в модуле lib
верхнего уровня build.gradle
? Или есть способ указать эту зависимость для только модуля lib
? Я также думаю, что это странно, если у меня есть несколько приложений, использующих мой модуль lib
, и им нужно будет добавить эту зависимость пути к классам, чтобы иметь возможность создавать свои приложения.
Большое спасибо.
lib
импортируется путем указания пути к нему вsettings.gradle
, затем я включаю его как зависимость в свой уровеньapp
build.gradle
. Дело в том, что частьapply plugin: 'org.jetbrains.dokka-android'
вbuild.gradle
lib
жалуется, что не может найти плагин. - person Chee-Yi   schedule 22.08.2019