xez
@xez
TL Junior Roo

Как собрать проект в Gradle при отсутствии интернета?

Есть чужой проект на Gradle. Проблема в том, что при сборке gradle пытается скачать зависимости из интернета, и, по какой-то причине у него это не удается (видимо проблемы в соединении). Как собрать проект, скачав компоненты вручную? Куда их подложить?
  • Вопрос задан
  • 1316 просмотров
Решения вопроса 1
voidnugget
@voidnugget
Программист-прагматик
Нужно проверить определение существующих Maven/Ivy репозиториев в build.gradle нужного модуля.
И вот что там можно сделать:

repositories {
    ivy {
        url "http://mycompany.com/repo" // нужно проверить доступность
        // или
        url "../local-ivy-repo" // для локальной папки с Ivy репозиторием
        
        // В Ivy можно указать структуру каталогов для поиска и путь к ivy.xml явно
        // Таким образом можно описать путь для любых зависимостей по http/https'у 
        layout 'pattern' , { 
            artifact '[module]/[revision]/[artifact](.[ext])'
            ivy '[module]/[revision]/ivy.xml'
        }
    }

    // Тоже самое можно и для Maven'a
    maven {
        url "http://repo.mycompany.com/maven2"
        // или
        url "../local-maven-repo"

        // В MavenArtifactRepository нет возможности прописать Layout, по понятным причинам

        // А ещё и в Ivy и в Maven'e можно указать пароль к AWS'у или http auth, правда это нестабильная фича
        credentials { // или credentials(AwsCredentials) {
            accessKey "myAccessKey"
            secretKey "mySecret"
        }
    }
}


Maven и Ivy используют разные структуры папок, так что, при внесении изменений вручную, это нужно иметь ввиду. Хотя для Ivy можно явно указать layout 'pattern' для самопальной структуры, а вот в Maven'e afaik так нельзя.

Если совсем-совсем не заморачиваться, можно положить все jar'ки в папочку libs и добавить их в зависимости, вот так

dependencies {
    runtime files('libs/a.jar', 'libs/b.jar')
    // ну, или так
    runtime fileTree(dir: 'libs', include: '*.jar')
}


Пишите если нужно будет что-то уточнить.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы