Ответ 1
Я пытался решить ту же проблему и пришел сюда, надеясь найти ответ! Во всяком случае, хотя ответа не было, ваше упоминание о build-extras.gradle
поставило меня на правильный путь, и теперь для меня теперь работает следующее... так спасибо.
Для начала я подумал, что могу попробовать использовать тот же синтаксис, что и вы, чтобы попытаться выяснить, что было не так. Насколько я могу сказать, он терпит неудачу, потому что файл build-extras.gradle
не магически слит в build.gradle
, но вместо этого загружается и выполняется с использованием подхода Gradle apply from
. И так как это происходит до закрытия android
, это слишком рано в этом процессе, и эти значения android
переопределяют наши "дополнительные" значения.
(У меня нет времени, чтобы вникать больше, чем мне нужно, в Gradle или Groovy, поэтому извиняюсь, если моя терминология не точна...)
Однако я мог бы заставить его работать, если я использовал метод postBuildExtras()
.
Если вы посмотрите на нижнюю часть файла build.gradle
, созданного Кордорой, вы увидите, что если такой метод (т.е. postBuildExtras
) существует на ext
, тогда он вызывается. Поскольку это последнее в конфигурации script, то я думаю, что точка этого метода заключается в том, что мы можем использовать его для переопределения чего-либо.
Поэтому я оказался в этом как build-extras.gradle
:
ext.postBuildExtras = {
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
}
У меня на самом деле работала довольно рано в моих исследованиях, но продолжала пробовать другие подходы, так как я подозреваю, что этот метод потерпит неудачу, когда мы попытаемся иметь несколько файлов build-extras.gradle
, которые, учитывая, что мы оба говорим конкретно о плагинах Кордовы, очень вероятно.
Существует технология, которая выглядит многообещающей для плагинов, которая заключается в использовании элемента <framework>
в plugin.xml
, но при таком подходе я никогда не смог получить модуль-модуль для загрузки/импорта/независимо. Я еще раз посмотрю на это, когда я доберусь до плагина № 2, но теперь описанная выше техника дает мне большой скачок дальше, где я был этим утром, поэтому снова спасибо за подсказку build-extras.gradle
.;)