Как скачать файл aar из частного репозитория gitlab через gradle - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь загрузить библиотеку зависимостей mylibrary.aar из моего gitlab хранилища через gradle. Я понимаю, что у нас нет никаких замыканий / методов в Gradle для прямого получения файлов с http URL.

Поэтому я использую метод ant для загрузки библиотеки из gitlab.

Вот код, который я использую в моем gradle файле для получения библиотеки.

task downloadlib {

ant.get(src: 'https://my-git-link/mylibrary.aar', dest: 'libs', verbose: 'on')

}

dependencies {

compile(name: 'mylibrary', ext: 'aar')

}

Проблема:

Файлы, которые я загружаю с помощью метода get муравья, кажутся поврежденными / не проходят процесс загрузки должным образом. Не уверен, что идет не так. Библиотека не компилируется, и зависимости не могут быть разрешены. Когда я пытаюсь извлечь aar, он снова извлекает в файл cgpz в моем mac.Я, хотя я не пробовал в Windows.

Однако, если я вручную загружаю тот же файл aar и ссылаюсь на него в папке libs, он работает абсолютно нормально.

  1. Есть идеи, почему это происходит?
  2. Есть ли другой способ загрузить файл aar с сервера gitlab, кроме ant.get?

Любая помощь в этом очень ценится.

Примечание: я не могу использовать локально построенную зависимость, так как все мои библиотеки находятся в разных репозиториях, и требования проекта требуют одинакового. Также код не может быть опубликован в github, и по этой причине я не выбрал jitpack

Та же проблема возникает и для файлов jar.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Не думаю, что у меня есть прямое решение проблемы, поскольку gradle не имеет API для этого. Вместо этого я создал собственный репозиторий maven, используя jfrog s artifactory, и разместил там библиотеки, чтобы все разработчики могли ссылаться на библиотеки из внутренней артефакты.

Артефактную версию OSS можно загрузить с здесь

Я выбрал artifactory, потому что он был намного проще и имел отличный пользовательский интерфейс. Прежде всего, для этого не требовалось создавать отдельный репозиторий github для этой цели, так как код не может использоваться совместно за пределами организации.

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

http://localhost:8081/artifactory.

Дано краткое описание создания артефакта здесь

После размещения библиотек в вашем artifactory, который может находиться в любом месте вашей сети, вы или любой другой разработчик в вашей организации могут получить доступ к вашим библиотекам с помощью диспетчера зависимостей maven в Android.

Надеюсь, это поможет.

0 голосов
/ 15 мая 2018

Сделайте так, как в этом примере:

implementation 'com.quickblox:quickblox-android-sdk-core:2.5.2@aar'
implementation('com.quickblox:quickblox-android-sdk-chat:2.5.2@aar') {
    transitive = true
    }
...