我有一个Android应用程序(app
模块(和一个Android库模块(lib
模块(,每个都是一个单独的Android Studio项目,但是应用程序项目在其项目中添加了lib
作为模块依赖项。
该lib
使用 JetBrain 的 Dokka 生成 HTML 文档,并且需要 Dokka Android Gradle 插件,该插件在其自己项目的顶级build.gradle
中定义:
buildscript {
dependencies {
// ...
classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18"
}
}
在lib
模块的build.gradle
中,我必须添加以下内容
apply plugin: 'org.jetbrains.dokka-android'
android {
// ...
dokka { /* my Dokka config */ }
}
所以现在lib
项目工作和构建得很好,我能够使用 Dokka 生成文档 BIB。
但是,我的应用程序项目的 Gradle 同步现在失败了,因为它显示"找不到 id 为 org.jetbrains.dokka-android 的插件"。如果我将classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18"
添加到应用项目的顶级build.gradle
则它可以正常工作。
我的问题是,我如何告诉主(应用程序(项目,Dokka 的类路径依赖项已经在lib
模块的顶级build.gradle
中声明? 或者有没有办法只为lib
模块指定此依赖项?我也认为如果我有多个使用我的lib
模块的应用程序,并且他们需要添加这个类路径依赖项才能构建他们的应用程序,这很奇怪。
非常感谢。
您只需将此部分添加到lib/build.gradle
从顶级文件中删除即可。
buildscript {
//
dependencies {
classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18'
}
}
发生这种情况是因为您将此库作为外部模块导入,并且正在lib
模块中运行某些任务(例如build
任务(。
您可以避免它:
- 将您的库作为 AAR 或 Maven 依赖项导入(最佳选择是在私有 Maven 存储库中发布(
- 只需运行与应用程序相关的任务。