Как добавить собственный модуль в проект Cordova Android?

Я хочу добавить собственный (интеграционный тестовый) модуль в проект Cordova Android.

Для полностью нативных проектов вы просто добавляете новый модуль, фиксируете и покончили с этим. Но для Cordova я, конечно, не хочу возиться со сгенерированным проектом Android, так как некоторые из этих изменений могут быть потеряны при сборке и т. д.

Я получил Poof of Concept модуля, работающего вручную, имея папку модуля вне папки Cordova Android и добавив это в settings.gradle:

include ':module-androidTest'
project(':module-androidTest').projectDir = new File("../module-tests")

Но, конечно, строка 1 этого файла уже говорит

// GENERATED FILE - DO NOT EDIT

Есть ли другой способ добавить дополнительные модули в проект Cordova Android?


Некоторые подходы, которые я исследовал или о которых думал:

  • Можно ли как-то сделать это с build-extras.gradle? (Я так не думаю, поскольку settings.gradle находится за несколько шагов до build-extras и build.gradle, верно?)

  • Старые вопросы StackOverflow предполагают ручное редактирование файла GradleBuilder.js: https://stackoverflow.com/a/35504783/252627 Но, конечно это будет теряться каждый раз, когда я полностью создаю новый проект Cordova. Не лучшая идея, верно?

  • Могу ли я как-то обойти это с помощью плагина Cordova? Я знаю, что они могут загружать фреймворки и т. д. - может быть, также каким-то образом модуль?


person janpio    schedule 03.10.2017    source источник
comment
Я думаю, что то, что вы ищете, можно сделать с помощью специального плагина, который может расширить базовую конфигурацию gradle с помощью тега фреймворка, например: <framework src="relative/path/to/your/gradlefile/*.gradle" custom="true" type="gradleReference" />.   -  person David    schedule 04.10.2017
comment
Спасибо за идею @David, но gradleReference позволяет вам добавлять дополнительные данные в ваш build.gradle файл только между // PLUGIN GRADLE EXTENSIONS START // PLUGIN GRADLE EXTENSIONS END строками сгенерированного build.gradle (что здорово, но мне это не помогает, верно?)   -  person janpio    schedule 04.10.2017
comment
Ну, я не знаю, поможет ли это вам в вашем конкретном случае использования, поэтому я добавил его в качестве комментария, но именно так вы обычно расширяете проект Cordova для Android.   -  person David    schedule 04.10.2017
comment
Пожалуйста, опубликуйте это как ответ, чтобы я потенциально мог принять его, если это сработает.   -  person janpio    schedule 06.10.2017


Ответы (1)


Я думаю, что то, что вы ищете, можно сделать с помощью специального плагина, который может расширить базовую конфигурацию gradle с помощью тега фреймворка, подобного этому:

<framework src="relative/path/to/your/gradlefile/*.gradle" custom="true" type="gradleReference" />

Вот как обычно расширяется проект Cordova-Android.

person David    schedule 06.10.2017