Думаю, каждый хотя бы раз сталкивался с проблемой недоступных maven репозиториев, когда срочно нужно собрать проект. А в сфере майн-моддинга это довольно частое явление, потому что не каждый владелец репозитория ответственно относится к поддержанию его работы.
В этом мире нет ничего надёжнее кроме maven central и собственных репозиториев. Приведённая ниже небольшая модификация конфигурации Gradle позволит динамически подменять URL репозиториев во всех проектах на свои. Работает даже со ссылками «захардкожеными» в плагинах.
Создайте файл
Организовать свой приватный репозиторий можно путём развёртывания следующего программного обеспечения на своём сервере (рассмотрены только бесплатные варианты):
Оба варианта поддерживают создание proxy-репозиториев.
В этом мире нет ничего надёжнее кроме maven central и собственных репозиториев. Приведённая ниже небольшая модификация конфигурации Gradle позволит динамически подменять URL репозиториев во всех проектах на свои. Работает даже со ссылками «захардкожеными» в плагинах.
Создайте файл
init.d/maven-mirror.gradle в Gradle User Home.
Gradle (Groovy):
// Источник: Замена
// URL источника без / на конце!
// Ссылки приведены для примера. Нужно заполнить своими.
def repositoryMappings = [
"https://files.minecraftforge.net/maven": "https://maven.minecraftforge.net",
"https://su5ed.jfrog.io/artifactory/maven": "https://maven.su5ed.dev/releases/",
]
def enableMirror = { repositories ->
repositories.all { repository ->
if (repository instanceof MavenArtifactRepository) {
def originalUrl = repository.url.toString()
.replace('http://', 'https://')
.replaceAll("/\$", '')
if (repositoryMappings.containsKey(originalUrl)) {
def mirroredUrl = repositoryMappings[originalUrl]
logger.lifecycle("Repository '${repository.url}' is mirrored to '${mirroredUrl}'")
repository.setUrl(mirroredUrl)
}
}
}
}
gradle.allprojects {
buildscript {
enableMirror(repositories)
}
enableMirror(repositories)
}
gradle.settingsEvaluated { settings ->
settings.pluginManagement {
enableMirror(repositories)
}
}
Свой репозиоторий
Ссылки на сторонние репозитории можно заменять своими proxy-репозиториями.Организовать свой приватный репозиторий можно путём развёртывания следующего программного обеспечения на своём сервере (рассмотрены только бесплатные варианты):
- Sonatype Nexus Repository – мощный комбайн, поддерживает maven2 и множество других форматов репозиториев.
- Reposilite – минимальный функционал, простая настройка, заточен исключительно под maven формат.