Android 库模块的使用者必须添加类路径依赖项
Consumer of Android library module having to add classpath dependencies
我有一个 Android 应用程序(app
模块)和一个 Android 库模块(lib
模块),每个都是一个单独的 Android Studio项目,但应用程序项目在其项目中添加了 lib
作为模块依赖项。
lib
使用JetBrain的Dokka生成HTML文档,需要DokkaAndroidGradle插件,定义在自己项目的顶层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 生成文档 HTMLs。
但是,我的应用程序项目的 Gradle 同步现在失败了,因为它显示 "Plugin with id org.jetbrains.dokka-android not found"。如果我将 classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18"
添加到我的应用程序项目的顶级 build.gradle
那么它就可以正常工作。
我的问题是,如何告诉主(应用)项目 Dokka 的类路径依赖项已经在 lib
模块的顶级 build.gradle
中声明?或者有没有办法为 just lib
模块指定这种依赖关系?我还认为如果我有多个应用程序使用我的 lib
模块并且他们需要添加此类路径依赖项才能构建他们的应用程序,这很奇怪。
非常感谢。
您可以将此部分添加到您的 lib/build.gradle
从顶级文件中删除。
buildscript {
//
dependencies {
classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18'
}
}
发生这种情况是因为您正在将此库作为外部模块导入,并且您正在 lib
模块中 运行 执行一些任务(例如 build
任务)。
你可以避免它:
- 将您的库作为 aar 或 maven 依赖项导入(最好的选择是在私有 maven 存储库中发布)
- 只有 运行 个与应用相关的任务。
我有一个 Android 应用程序(app
模块)和一个 Android 库模块(lib
模块),每个都是一个单独的 Android Studio项目,但应用程序项目在其项目中添加了 lib
作为模块依赖项。
lib
使用JetBrain的Dokka生成HTML文档,需要DokkaAndroidGradle插件,定义在自己项目的顶层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 生成文档 HTMLs。
但是,我的应用程序项目的 Gradle 同步现在失败了,因为它显示 "Plugin with id org.jetbrains.dokka-android not found"。如果我将 classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18"
添加到我的应用程序项目的顶级 build.gradle
那么它就可以正常工作。
我的问题是,如何告诉主(应用)项目 Dokka 的类路径依赖项已经在 lib
模块的顶级 build.gradle
中声明?或者有没有办法为 just lib
模块指定这种依赖关系?我还认为如果我有多个应用程序使用我的 lib
模块并且他们需要添加此类路径依赖项才能构建他们的应用程序,这很奇怪。
非常感谢。
您可以将此部分添加到您的 lib/build.gradle
从顶级文件中删除。
buildscript {
//
dependencies {
classpath 'org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18'
}
}
发生这种情况是因为您正在将此库作为外部模块导入,并且您正在 lib
模块中 运行 执行一些任务(例如 build
任务)。
你可以避免它:
- 将您的库作为 aar 或 maven 依赖项导入(最好的选择是在私有 maven 存储库中发布)
- 只有 运行 个与应用相关的任务。