Как добавить зависимость (Maven или JCenter) в плагин Cordova для Android

Если вы разрабатываете Android-часть плагина Cordova, чтобы добавить функцию, написанную на Java (другой сторонний API, который не предлагает Javascript или API, дружественный к Cordova), вам нужно добавить зависимости к вашему плагину, чтобы используйте их в своем основном классе Java вашего плагина.

Вместо того, чтобы загружать исходный код API (или исходный код чего-либо), оберните его в файл .jar и добавьте его (что не работает в большинстве случаев) в ваш плагин, вы можете сделать его более динамичным и ремонтопригодное добавление вашей зависимости в plugin.xml файл.

Добавление зависимости

Как указано в документации Cordova Как добавить зависимость , предпочтительным способом решения этой задачи является использование тег.

В этом случае мы собираемся добавить следующую зависимость в наш проект: AWS SDK для Java »1.10.75 , эту зависимость можно использовать, добавив идентификатор 'com.amazonaws:aws-java-sdk:1.10.75' в Gradle (как мы работаем с плагином, с тегом framework). Поэтому все, что нам нужно сделать, это добавить в наш файл plugin.xml на платформе Android следующую строку:



Теперь зависимость будет добавлена ​​в сборку, и вы можете использовать, например, импорт в свой класс Java плагина:

import com.amazonaws.services.s3; // Now we can use amazon things ...
public myJavaClass extends CordovaPlugin{
}

Теперь добавьте плагин в ваш проект и попробуйте собрать. Если хранилище зарегистрировано в mavenCentral, все должно работать хорошо.

Если вам не повезло сегодня, и ваш проект не компилируется, это может быть проблемой с хранилищем, поскольку он не размещен в mavenCentral, поэтому, пожалуйста, продолжайте читать.

Проблема с репозиториями JCenter

Если ваша зависимость не была найдена во время компиляции, возможно, вы не добавили правильный репозиторий в свой gradle. Например, в этом случае мы будем использовать пример репозитория JCenter, следующий проект сборщик файлов для Android OneDrive указывает, что вам нужно использовать 'com.microsoft.onedrivesdk:onedrive-picker-android:v2.0' идентификатор репозитория для добавления зависимости в ваш проект, однако, если вы добавите его в свой плагин как обычно, приложение не будет компилироваться, но почему?

repositories {
jcenter() // Note that you need to add jcenter repository !!! that's it
}
dependencies {
compile ('com.microsoft.onedrivesdk:onedrive-picker-android:v2.0')
}

Как видите, репозиторий указывает, что вам нужно добавить репозиторий jcenter в ваш проект, что решит проблему, и приложение будет скомпилировано как обычно.

jcenter() похож на mavenCentral(), Посмотри на JCenter Больше подробностей. Ребята из jCenter утверждают, что они имеют лучшую производительность, чем Maven Central.

Добавить пользовательский Gradle только для вашего плагина

Вы можете создать пользовательский graddle для своего плагина, не изменяя оригинальный файл graddle проекта. Создать файл Graddle (plugin.gradle) в вашем плагине с вашим пользовательским контентом, в этом случае, если наш плагин добавит нативный сборщик файлов, и нам нужен доступ к хранилищу jcenter, содержанию plugin.gradle файл должен быть:

repositories {
jcenter()
}
dependencies {
compile 'com.nononsenseapps:filepicker:3.1.0'
}

Наконец, зарегистрируйте пользовательский graddle в файле plugin.xml (измените путь в соответствии с расположением plugin.gradle файл):

Теперь попробуйте снова скомпилировать, и ваша библиотека (полученная из jcenter) должна быть доступна в вашем классе Java.

Добавить репозиторий вручную

Если вы хотите изменить вручную .gradle файл (плохая практика, но если вам действительно нужно добавить другой репозиторий, который не будет maven без пользовательского файла gradle, потому что вы спешите).

Перейдите к проекту / platform / android и откройте файл build.gradle. Примерно в строке 48 — 50 вы найдете свойство репозитория:

// Allow plugins to declare Maven dependencies via build-extras.gradle.
repositories {
mavenCentral()
}

Вы найдете только mavenCentral (), поэтому вам нужно добавить jcenter (), и все будет работать как положено:

// Allow plugins to declare Maven dependencies via build-extras.gradle.
repositories {
mavenCentral()
jcenter()
}

Теперь попробуйте снова скомпилировать, тогда все должно работать. Да пребудет с тобой сила, веселись!

Ссылка на основную публикацию
Adblock
detector