Android库模块的消费者必须添加类路径依赖项



我有一个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 存储库中发布(
  • 只需运行与应用程序相关的任务。

最新更新