簡體   English   中英

如何強制gradle子項目使用root項目的buildToolsVersion / compileSdkVersion?

[英]How to force a gradle sub project to use root project's buildToolsVersion/compileSdkVersion?

尋找一些聰明的方法只做一次,例如

allprojects {
  android {
    buildToolsVersion '18.0.1'
    compileSdkVersion 18

    defaultConfig {
        targetSdkVersion 18
    }
  }
}

否則,每當有新的SDK更新可用時,我需要在每個子項目中(例如在諸如volley或viewpagerindicator之類的引用庫中)執行此操作。

通常,根項目不包含代碼,因此您將使用subprojects 此外,您必須在android {}阻止之前應用Android插件。 除此之外,我希望這可行。

我在另一個問題中回答:

我在這里找到了解決方案。

將它復制在這里以防萬一:

在你的root build.gradle add中

ext {
    compileSdkVersion = 20
    buildToolsVersion = "20.0.0"
}
subprojects { subproject ->
    afterEvaluate{
        if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

這將把compileSdkVersion和buildToolsVersion應用於你擁有的任何android模塊。

在您的主項目的build.gradle中更改依賴關系:

compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion

基本上你只是定義它們一次,可以在任何地方使用。

干杯。

暫無
暫無

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

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