Как применить конфигурацию к вложенному модулю через `build.gradle` - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть gradle проект с вложенным проектом Gradle.Как установить конфигурацию в корне build.gradle и применить ко всем вложенным модулям.Структура выглядит так:

 project
   build.gradle
   settings.gradle
   sub-project
       build.gradle 

внутри settings.gradle, я включаю sub-project:

include ":sub-project"

в корень build.gradle, у меня ниже настройки:

  android {
   buildTypes {
    staging {
        initWith release
    }
   }
  }

Работает нормально, если я вручную отредактирую build.gradle в sub-project.Интересно, как я могу передать этот параметр в sub-project без обновления его build.gradle

Я попытался добавить нижеприведенную конфигурацию в root build.gradle:

subprojects { pry -> 
    android {
        buildTypes {
            staging {
                initWith release
            }
        }
    }
}

, но получил эту ошибку:

Unable to find a matching configuration of project :sub-project:
          - Configuration 'debugApiElements':
              - Required com.android.build.api.attributes.BuildTypeAttr 'staging' and found incompatible value 'debug'.

Вручную добавить настройки для вложенного build.gradle отлично работает, но способ subprojects не работает.В чем разница между этими двумя способами?

1 Ответ

0 голосов
/ 03 декабря 2018

внутри project/build.gradle, используйте все проекты , как показано ниже:

allprojects { prj ->

    if (!project.hasProperty("android")) {
        return
    }

    // this condition can be used to skip some project
    if (prj.name == "<your-project-name-to-skip>"){
        return
    }

    android {

        ...
        productFlavors {
            staging {
                initWith release
            }
        }
        ...
    }
}

Если вы хотите, чтобы определенные настройки применялись только к подпроектам .Замените все проекты на подпроекты .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...