Я хочу использовать репозиторий maven с кэшированными артефактами, которые у меня есть на моем локальном компьютере, чтобы ускорить сборку Gradle, избегая их загрузки.Получение Gradle для использования артефакта из локального репозитория maven
К сожалению, я заметил, что, хотя локальный репозиторий указан первым, и он имеет необходимую мне зависимость, Gradle будет извлекать артефакт из Интернета, если доступно подключение к Интернету, и будет использовать только локальный репозиторий, если есть это проблема с подключением к сети.
Вот один конкретный маленький пример, который воспроизводит эту проблему:
build.gradle:
apply plugin: 'java'
repositories {
maven {
name 'cache'
url "/home/vagrant/m2copy"
}
jcenter()
}
dependencies {
compile 'com.google.code.gson:gson:2.4'
}
jar {
manifest {
attributes 'Created-By': 'Ekumen'
}
}
Содержание /дома/бродяга/m2copy:
m2copy:
com
m2copy/com:
google
m2copy/com/google:
code
m2copy/com/google/code:
gson
m2copy/com/google/code/gson:
gson
m2copy/com/google/code/gson/gson:
2.4
m2copy/com/google/code/gson/gson/2.4:
gson-2.4.jar
gson-2.4.jar.sha1
_remote.repositories
И выход конструкции градиента:
[email protected]:~/test_cache$ ./gradlew build
:compileJava
Download https://jcenter.bintray.com/com/google/code/gson/gson/2.4/gson-2.4.pom
Download https://jcenter.bintray.com/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
Download https://jcenter.bintray.com/com/google/code/gson/gson/2.4/gson-2.4.jar
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build
BUILD SUCCESSFUL
Любые идеи, почему Gradle пропускает локальный репозиторий в этом случае и использует его только при отсутствии доступа к jcenter?
Попробуйте добавить -i в команду сборки, чтобы получить дополнительную информацию. Gradle расскажет вам, какие репозитории он пытается получить. – tomasulo