2014-02-05 3 views
3

У меня есть конструкция градиента android, которая ищет зависимости на четырех разных серверах.Как ускорить процесс построения градиента и пропустить неудачные поиски зависимостей?

Теперь сборка занимает до двух минут, потому что эти зависимости проверяются каждой сборкой. Возможно, это происходит потому, что один из репозиториев возвращает ошибку для большинства зависимостей.

У меня есть следующие источники в моем Gradle файле:

repositories { 
    maven { url 'http://jenkins.local:8081/nexus/content/groups/public/' } 
    mavenCentral() 
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/'} 
    maven {url "https://repo.commonsware.com.s3.amazonaws.com"} 
} 

Первая запись является прокси-сервер, который должен кэшировать все артефакты после первого запроса. Это часть списка зависимостей:

компиляции «com.android.support:support-v4:19.+»

compile 'com.squareup.picasso:picasso:2.2.+' 
compile 'com.commonsware.cwac:merge:1.0.1' 
compile files('libs/crittercism_v4_3_0_sdkonly.jar') 
testCompile 'junit:junit:4.10' 
testCompile 'org.robolectric:robolectric:2.3-SNAPSHOT' 
testCompile 'com.squareup:fest-android:1.0.+' 
testCompile 'org.mockito:mockito-all:1.9.5' 
instrumentTestCompile 'junit:junit:4.10' 
instrumentTestCompile 'org.robolectric:robolectric:2.3-SNAPSHOT' 
instrumentTestCompile 'com.squareup:fest-android:1.0.+' 
instrumentTestCompile 'org.mockito:mockito-all:1.9.5' 

Теперь во время работы Gradle я получаю следующий результат (опять снимок):

Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/de/greenrobot/greendao/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/support-v4/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/support-v4/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/picasso/picasso/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/picasso/picasso/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/picasso/picasso/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/picasso/picasso/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/appcompat-v7/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/appcompat-v7/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/mediarouter-v7/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/mediarouter-v7/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/support-v4/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/support-v4/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/fasterxml/jackson/core/jackson-databind/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/fasterxml/jackson/core/jackson-databind/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/fasterxml/jackson/core/jackson-core/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/fasterxml/jackson/core/jackson-core/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/fasterxml/jackson/core/jackson-annotations/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/fasterxml/jackson/core/jackson-annotations/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/okhttp/okhttp/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/okhttp/okhttp/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/retrofit/retrofit/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/retrofit/retrofit/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/de/greenrobot/greendao/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/de/greenrobot/greendao/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/support-v4/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/support-v4/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/picasso/picasso/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/picasso/picasso/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/picasso/picasso/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/squareup/picasso/picasso/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/appcompat-v7/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/appcompat-v7/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/mediarouter-v7/maven-metadata.xml] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/mediarouter-v7/] 
Failed to get resource: GET. [HTTP HTTP/1.1 403 Forbidden: https://repo.commonsware.com.s3.amazonaws.com/com/android/support/support-v4/maven-metadata.xml] 

Как я могу заставить сборку сделать этот поиск только один раз в день или пропустить Lookups, которые не смогли в последний раз или взять первый артефакт, который был найден и пропустить все другие операции РЕПО для артефактов, которые уже доступны?

+1

«Возможно, это происходит из-за того, что один из репозиториев возвращает ошибку для большинства зависимостей» - мой репозиторий находится на Amazon S3, поэтому вы получите 403 вместо 404 для не найденного файла. Это не должно влиять на производительность, хотя, по-видимому, это влияет на подробный журнал (или везде, где вы получаете строки журнала из своего вопроса). – CommonsWare

+1

По-видимому, он не может найти некоторые зависимости вообще. Он остановится после первого репо, содержащего соответствующий модуль, и он попытается повторно разрешить моментальные снимки и динамические версии через 24 часа (это значение по умолчанию). (PS: Если у вас есть прокси-сервер, обычно лучше объявлять все внешние репозитории там, а не в скрипте сборки.) –

+0

@PeterNiederwieser прокси работает только в одном из офисов на данный момент, поэтому нам нужен способ не используйте прокси-сервер в других местах. – Janusz

ответ

1

Мораль этой истории: убедитесь, что ваше хранилище Maven возвращает 404 для всего, что на самом деле отсутствует.

В конкретном случае размещения репозитория на Amazon S3 предоставите «Каждому» разрешение «Список» с помощью диспетчера Amazon S3 или иным образом следуйте инструкциям от this StackOverflow answer.

+1

Было бы неплохо заставить градлу заглянуть только для определенных артефактов в некоторых репозиториях, чтобы исправить это в построить файл. В тех случаях, когда владелец репо не очень отзывчив. Еще раз спасибо. – Janusz

Смежные вопросы