Как прокси-репозиторий Gradle только для pom с использованием Apache Archiva v1.3.5
Проблема:
Наши скрипты Gradle работают нормально, если мы позволим Gradle работать напрямую с собственным хранилищем плагинов. Когда мы направляем их через Apache Archiva, плагины не обнаруживаются, хотя мы настроили прокси-коннекторы Archiva.
Мы видим, что Archiva действительно выполняет проксирование и кэширует то, что получило из хранилища плагинов Gradle, а это только pom, а не jar. Единственный найденный нами обходной путь - это вручную загрузить пустой jar-файл с теми же координатами и именем, что и pom, после попытки проксирования (неудачной) один раз.
Похоже, это связано с тем, что делает Apache Archiva или как он настроен - похоже, он не обрабатывает артефакты "без jarless" (только для pom). Есть ли способ исправить это?
Наша установка:
- Мы используем Gradle (5.1.1) в качестве нашего инструмента сборки и нам нравится применять плагины, используя подход { ... } плагинов.
- Мы мигрируем из Apache Archiva, но все еще будем на нем некоторое время. Версия, которую мы используем, старая - v1.3.5, но я не уверен, будет ли новая версия лучше.
- Мы настраиваем только нашу Apache Archiva в качестве репозитория для наших скриптов Gradle. Они не могут получить доступ к собственному репо плагинов Gradle по адресу https://plugins.gradle.org/m2/. Даже если это возможно, мы предпочитаем использовать прокси для повышения производительности сборки.
Фон для не-Gradle читателей:
Когда Gradle настроен на применение плагина с идентификатором 'foo.bar', он обычно ищет в репозитории https://plugins.gradle.org/m2/ репозиторий "maven" с идентификатором группы "plugin-id" и идентификатор артефакта "plugin-id.gradle.plugin" - в этом случае "foo.bar" и "foo.bar.gradle.plugin". Вот фактический пример этого:
https://plugins.gradle.org/m2/com/cisco/filesystem/com.cisco.filesystem.gradle.plugin/1.4/
Там для каждой версии можно найти только файл pom (не jar). Этот pom-файл имеет единственную зависимость, которая действует как своего рода перенаправление на реальные координаты maven реального плагина.