JitPack не будет использовать репозиторий GitHub с репо, который демонстрирует проблему

Каждый раз, когда я пытаюсь разблокировать библиотеку Android и использовать ее через JitPack, я получаю ошибки, отказываюсь и выбираю другие средства для настройки и использования библиотеки. На этот раз я хотел разобраться в этом и создал базовое приложение, которое изолирует проблему. Не могли бы вы скачать репо ниже и сказать мне, что я делаю неправильно?

В этом репо очень простое приложение для Android: https://github.com/gazialankus/JitpackNotWorking. Я просто создал новое приложение для Android в Android Studio и выполнил инструкции в https://jitpack.io/, чтобы добавить https://github.com/ArthurHub/Android-Image-Cropper github repo как зависимость. Я добавил репозиторий JitPack Maven в корневой каталог build.gradle и добавил зависимость библиотеки в приложении build.gradle следующим образом:

compile 'com.github.ArthurHub:android-image-cropper:2.4.5'

Gradle syncs fine, но 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 для этого репозитория говорит "ok".

Gradle и версии Java: в меню Android Studio > Структура проектa > Проект, версия Gradle равна 3,3, а версия Android Plugin 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

Спасибо.

Edit: Пробовал с моей вилкой и пытался сделать библиотеку более дружественной JitPack, по-прежнему той же проблемой. См. Комментарии в репо.

SOLVED: Подробнее см. 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 не становится более интеллектуальным и вместо того, чтобы просто устанавливать некоторые переменные проекта, добавляет некоторый init script, который перенастраивает публикации или что-то в этом роде.

Возможно, вам следует использовать составную сборку. С составной сборкой вы объявите двоичную зависимость, например com.theartofdev.edmodo:android-image-cropper:2.4.5, но затем замените эту зависимость на рабочую цепочку проекта, и подстрока автоматически будет выполнена, чтобы получить артефакт для зависимости. Это чистый Gradle способ заменить зависимость с помощью настраиваемой сборки.