Как сделать вашу библиотеку в Github импортируемой в Android-студию

Я знаю, что вы можете импортировать библиотеки Github в Android-студии, используя Gradle:

compile 'com.github.someone.something:xxx-yyy:+'

Что это за часть: ххх-ггг: +? Как построить проект так, чтобы он мог быть импортирован с предыдущей строкой?

До сих пор, если я просто загружаю библиотеку и импортирую ее без последнего xxx-ггг:+, я получаю ошибку, что это неверное описание. Если я пишу версию, то я получаю сообщение об ошибке, что она не может быть найдена

2 ответа

Решение

Все это обрабатывается через Maven с помощью плагина Gradle's Maven.

Очевидно, что вы уже поняли, что кто-то является пользователем Github, а что-то является его форком репо.

Вот документация для зависимости Maven (ее было легче найти, и она аналогична компиляции)

http://maven.apache.org/plugins/maven-compiler-plugin/dependency-info.html

Xxx-yyy является идентификатором артефакта. Идентификаторы артефактов Maven должны соответствовать этому регулярному выражению: [A-Za-z0-9_\-.]+. Обратите внимание, что идентификатор артефакта даже не нуждается в тире. Это может быть просто "библиотека".

Наконец, последний бит - версия (я считаю, что это тег в Github). + означает, что вы хотите самую последнюю версию, но вы можете указать конкретную версию.

Чтобы достичь этого, вы должны опубликовать свою библиотеку на Maven.

Это требует определенных знаний. Здесь вы можете найти несколько полезных ссылок.

РЕДАКТИРОВАТЬ 30/10/2015:

Для этого у вас есть несколько способов:

  1. опубликуйте свою библиотеку (артефакт) в центральном maven или jcenter.
  2. используйте репозиторий github и плагин jitpack

Пункт 2. очень прост. Просто вставьте свой код в github и измените скрипт gradle в проекте, где вы хотите его использовать.

Просто добавьте этот репозиторий build.gradle

repositories {
        // ...
        maven { url "https://jitpack.io" }
    }

и зависимость:

dependencies {
        compile 'com.github.User:Repo:Tag'
    }

Чтобы опубликовать библиотеку в Central Maven или JCenter, очень долго объяснять в ответе. Hovewer вы можете прочитать эти сообщения:

Другие вопросы по тегам