JitPack не будет использовать репозиторий GitHub - включен репозиторий, демонстрирующий проблему
Каждый раз, когда я пытаюсь раскошелиться на библиотеку Android и использовать ее через JitPack, я получаю ошибки, сдаюсь и выбираю другие способы настройки и использования библиотеки. На этот раз я хотел докопаться до сути и создал основное приложение, которое изолирует проблему. Не могли бы вы скачать репозиторий ниже и сказать мне, что я делаю не так?
В этом репо очень простое приложение для Android: https://github.com/gazialankus/JitpackNotWorking. Я просто создал новое Android-приложение в Android Studio и следовал инструкциям в https://jitpack.io/ чтобы добавить https://github.com/ArthurHub/Android-Image-Cropper репозиторий github в качестве зависимости. Я добавил репозиторий JitPack Maven в корневой каталог build.gradle и добавил зависимость библиотеки в приложение build.gradle следующим образом:
compile 'com.github.ArthurHub:android-image-cropper:2.4.5'
Gradle синхронизируется нормально, но android-image-cropper-2.4.5 не отображается во внешних библиотеках в представлении проекта. Итак, приложение не будет собираться с этой ошибкой:
Error:(6, 38) error: package com.theartofdev.edmodo.cropper does not exist
Как я отмечал в комментариях в приложении build.gradle, использование библиотеки без JitPack, как это работает, прекрасно:
compile 'com.theartofdev.edmodo:android-image-cropper:2.4.5'
Я подумал, что JitPack не может создать этот репозиторий. Тем не менее, журнал JitPack для этого репозитория говорит "хорошо".
Версии Gradle и Java: в меню Android Studio Файл> Структура проекта> Проект версия Gradle - 3.3, а версия плагина Android - 2.3.3. В этом же диалоговом окне на вкладке Расположение SDK показано, что встроенный JDK используется из C:\Program Files\Android\Android Studio\jre.
> "C:\Program Files\Android\Android Studio\jre\bin\java.exe" -version
openjdk version "1.8.0_112-release"
OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
OpenJDK 64-Bit Server VM (build 25.112-b06, mixed mode)
В Android Studio нет ожидающих обновлений.
Не могли бы вы скачать и собрать этот репозиторий, который изолирует проблему и скажите мне, что я делаю неправильно? Опять же, хранилище, демонстрирующее проблему, находится здесь: https://github.com/gazialankus/JitpackNotWorking
Спасибо.
Изменить: Попробовал с моей вилкой и попытался сделать библиотеку более дружественной к JitPack, все та же проблема. Пожалуйста, смотрите коммиты в репо.
РЕШЕНО: Пожалуйста, смотрите https://github.com/gazialankus/JitpackNotWorking/blob/master/README.md для более подробной информации.
1 ответ
Я думаю, что проблема в группе и версии.
В журнале сборки видно, что в вызове Gradle содержится -Pgroup=com.github.ArthurHub
а также -Pversion=2.4.5
, Но и в журнале вы видите Found artifact: com.theartofdev.edmodo:android-image-cropper:2.4.5-SNAPSHOT
где это на самом деле должно быть Found artifact: com.github.ArthurHub:android-image-cropper:2.4.5
,
В списке файлов внизу журнала вы также видите, что создается только POM, без jar или aar. Вот почему синхронизация Gradle успешна в AS, поскольку pom зависимостей найден и допустим, для этой зависимости просто нет артефактов.
Если вы посмотрите на build.gradle проекта, на который вы ссылаетесь, то увидите, что они не используют group
а также version
для конфигурации публикация, так что то, что установил JitPack, не используется и, следовательно, не может быть найдено.
Этот проект просто не совместим с JitPack, поскольку JitPack не становится более интеллектуальным и вместо простой установки некоторых переменных проекта добавляет сценарий инициализации, который перенастраивает публикации, или что-то в этом роде.
Возможно, вам следует использовать композитную сборку. С составной сборкой вы бы объявили бинарную зависимость как com.theartofdev.edmodo:android-image-cropper:2.4.5
, но затем подставьте эту зависимость рабочему дереву проекта, и автоматически будет выполнена подкомпиляция, чтобы получить артефакт для зависимости. Это чистый способ Gradle заменить зависимость пользовательской сборкой.