Основанная на вкусе версия зависимости gradle - PullRequest
0 голосов
/ 15 мая 2019

У меня есть приложение с большим количеством вкусов: flava1, flava2, flava3 ..... (и количество вкусов с течением времени увеличивается).

Приложение использует зависимость some-lib от версии X.X.X.Но один разновидностей, скажем, flava2 требует, чтобы эта зависимость была версии X.X.Y, в то время как другие разновидности продолжают с X.X.X.

Я пытался использовать зависимость на основе вкусастрока, подобная этой:

dependencies {
  implementation 'com.example:some-lib:X.X.X'
  flava2Implementation 'com.example:some-lib:X.X.Y'
}

, но она всегда будет заканчиваться использованием X.X.X.Я даже пытался изменить порядок этих двух строк (сначала поместив flava2Implementation), но это тоже не сработало.

Есть ли другой способ сделать это без явной записи flava1Implmentation, flava3Implmentation, flava4Implmentation и т. Д. Для всех вкусов, кроме flava2?Поскольку каждый раз, когда добавляется новый аромат, мы можем забыть добавить строку в зависимости для него

1 Ответ

0 голосов
/ 15 мая 2019

Я пытался решить эту проблему с помощью dimensions:

flavorDimensions "flav1", "other"
productFlavors {
    flav1 {
        dimension "flav1"
        applicationIdSuffix ".flav1"
    }
    flav2 {
        dimension "other"
        applicationIdSuffix ".flav2"
    }
    flav3 {
        dimension "other"
        applicationIdSuffix ".flav3"
    }

    forOther {
        dimension "other"
    }

}

Тогда мы можем добавить реализацию только для forOther

 implementation 'com.example:some-lib:X.X.X'
flav1Implementation 'com.example:some-lib:X.X.Y'

forOtherImplementation 'com.example:some-lib:Z.Z.Z'

Потому что forOther/ <included in flav2/flav3>

...