簡體   English   中英

Android庫模塊的使用者必須添加類路徑依賴項

[英]Consumer of Android library module having to add classpath dependencies

我有一個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生成文檔HTML。

但是,我的應用程序項目的Gradle同步現在失敗,因為它說“找不到ID為org.jetbrains.dokka-android的插件”。 如果我將classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.18"到我的應用程序項目的頂級build.gradle則它可以正常工作。

我的問題是,如何告訴主(應用程序)項目Dokka的classpath依賴關系已在lib模塊的頂級build.gradle 還是有辦法lib模塊指定這種依賴關系? 我還認為,如果我有多個使用我的lib模塊的應用程序很奇怪,那么他們將需要添加此classpath依賴項才能構建其應用程序。

非常感謝。

您只需將這部分添加到lib/build.gradle從頂級文件中刪除。

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

這是因為您要導入該LIB作為外部模塊,你正在運行的一些任務(例如build中的任務) lib模塊。
您可以避免它:

  • 作為aar或maven依賴項導入lib(最好的選擇是在私有maven存儲庫中發布)
  • 只需運行與應用程序相關的任務即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM