Откуда Gradle знает о сторонних библиотеках?
Библиотеки (артефакты) в виде jar или aar файлов хранятся в специальных репозиториях.  В build.gradle можно указать, в каком именно репозитории искать. По умолчанию gradle ищет их в JCenter, но можно указать и другие.buildscript {
    repositories {
        jcenter() // по умолчанию присутствует в файле
        mavenCentral() //указание на другой репозиторий
        maven { url 'https://maven.fabric.io/public' }     //указание на другой репозиторий
    }
}
Для своих библиотек можно использовать подобные сервисы или даже поднять свой собственный репозиторий.
Оформляйте свои либы как android library и в gradle файле:
compile project(':library_name')