2

我有一个 Android 应用程序(app模块)和一个 Android 库模块(lib模块),每个都是一个单独的 Android Studio 项目,但应用程序项目lib作为模块依赖项添加到其项目中。

使用libJetBrain 的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 生成文档 HTML。

但是,我的应用项目的 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模块并且他们需要添加这个类路径依赖项才能构建他们的应用程序,这很奇怪。

非常感谢。

4

1 回答 1

2

您可以在lib/build.gradle从顶级文件中删除时添加此部分。

buildscript {
    //
    dependencies {
        classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18'
    }
}

发生这种情况是因为您将此库作为外部模块导入,并且您正在模块中运行一些任务(例如build任务)lib
你可以避免它:

  • 将您的 lib 作为 aar 或 maven 依赖项导入(最好的选择是在私有 maven 存储库中发布)
  • 只需运行与应用程序相关的任务。
于 2019-08-22T13:24:01.550 回答