Разветвить монорепозиторий и создать подкаталог с помощью Jitpack?

Я пытаюсь разветвить репозиторий Microsoft Adaptive Cards и включить свою вилку в проект Android с помощью jitpack.io. Проблема здесь в том, что проект Android находится не в корневом каталоге проекта; он живет под source/android. По крайней мере, я думаю, что это моя проблема.

Глядя на журнал сборки jitpack моей ветки вилки и новой функции, я вижу, что он находит репо и ветку, но сборка не выполняется со следующими сообщениями об ошибках:

Android project not found. Looking for AndroidManifest.xml and project.properties.
Build tool exit code: 0
Looking for artifacts...
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 -Dhttps.protocols=TLSv1.2
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 -Dhttps.protocols=TLSv1.2
Looking for pom.xml in build directory and ~/.m2
2019-07-02T19:10:51.036415693Z
Exit code: 0

ERROR: No build artifacts found

Полные журналы сборки: https://jitpack.io/com/github/synchealth/AdaptiveCards/feature~custom-typeface-custom-typeface-gbd45cf5-1/build.log

Совершенно очевидно, что jitpack не находит проект Android в соответствующем подкаталоге.

Вот как я включаю зависимость через gradle:

implementation 'com.github.synchealth:AdaptiveCards:feature~custom-typeface-SNAPSHOT'

Однако это дает мне ошибку в Gradle: ERROR: Failed to resolve: com.github, что странно.

Чтобы включить исходное репо, вот что у меня было:

implementation 'io.adaptivecards:adaptivecards-android:1.2.0'

Здесь adaptivecards-android - это идентификатор артефакта, указанный в сгенерированном pom.xml, но я не уверен, как и должен ли я использовать этот идентификатор артефакта при попытке разрешить пакет из github. Я пробовал тоже пробовал

implementation 'com.github.synchealth:AdaptiveCards:adaptivecards-android:feature~custom-typeface-SNAPSHOT'

Но я получаю еще одну ERROR: failed to resolve ошибку в Gradle.

Как правильно развернуть этот репозиторий и сообщить jitpack о подкаталоге, который я пытаюсь создать?


person Patrick Goley    schedule 02.07.2019    source источник


Ответы (1)


Хотя код размещен на github, скомпилированная библиотека, скорее всего, получена из jcenter или google. Если вы посмотрите в другой файл build.gradle, вы увидите следующее:

repositories {
    jcenter()
    google()
}

Это те места, где ваш проект будет искать свои зависимости. Самым простым решением будет скомпилировать вашу версию библиотеки и добавить ее локально в папку lib. Вы можете добавить это как зависимость и добавить файл jar в папку libs:

implementation fileTree(include: ['*.jar'], dir: 'libs')

или если он скомпилирован как .aar (архив Android)

implementation fileTree(include: ['*.aar'], dir: 'libs')
person Bakon Jarser    schedule 02.07.2019
comment
Спасибо за помощь! Это сработало для меня, но я фактически импортировал модуль .aar a в свой проект, используя это руководство здесь. developer.android.com/studio/projects/android-library - person Patrick Goley; 03.07.2019