Разбить монорепо и построить подкаталог, используя Jitpack? - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь раскошелиться на хранилище 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 о подкаталоге, который я пытаюсь создать?

1 Ответ

1 голос
/ 02 июля 2019

Пока код размещен на 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')
...