2014-04-11 4 views
5

Я не смог решить проблему с двумя репозиториями (ext-releases-local и repo1-cache) на одном сервере Artifactory. Моя сборка, похоже, разрешает только последний репозиторий в списке и игнорирует первый. В основном, у меня есть зависимости моего проекта в ext-release-local, а их транзитивные зависимости можно найти в удаленном репозитории, называемом repo1-cache. Поэтому мне нужно решить, как использовать плагин Artifactory Gradle. Вот настройки, которые я пытался в моем build.gradle:Возможно ли иметь несколько репозиций в закрытии разрешения для плагина Artifactory Gradle?

artifactory { 
    contextUrl = "https://myartifactory.host.com" 
    publish { 
    repository { 
     repoKey = "myproj-releases-local" 
     username = "${artifactory_deployer_user}" 
     password = "${artifactory_deployer_password}" 
    } 
    } 
    resolve { 
    repository { 
     repoKey = "repo1-cache" 
     username = "${artifactory_reader_user}" 
     password = "${artifactory_reader_password}" 
    } 
    repository { 
     repoKey = "ext-releases-local" 
     username = "${artifactory_reader_user}" 
     password = "${artifactory_reader_password}" 
    } 
    } 
} 

Я был бы признателен за любую помощь/консультации по вопросам получения этой работы. На веб-сайте jfrog нет какой-либо документации, чтобы определить, поддерживается ли разрешение на два репозитория или нет. Это возможно сделать без плагина Artifactory Gradle, но, к сожалению, я буду строить через Bamboo, и плагин Artifactory Gradle стал необходимым для управления релизами.

ответ

11

Из того, что я могу сказать, это не поддерживается. Тем не менее, вы всегда можете создать виртуальный репозиторий на стороне Artifactory, который включает в себя ext-releases-local и repo1-cache. (Существует также предопределенный виртуальный репозиторий с именем /repo, который включает в себя все репозитории.) Как хороший побочный эффект, это, скорее всего, будет лучше, чем объявление двух репозиториев на стороне Gradle.

+1

Это 100% правильный ответ (@shane, вы можете принять и проголосовать). Обратите внимание, что использование виртуального репозитория/repo не рекомендуется. – JBaruch

+0

Большое спасибо. Я считаю, что в виртуальном репозитории '/ repo' есть все, что мне нужно для решения. Тем не менее, я не могу найти артефакты. Я считаю, что это проблема конфигурации: мне нужно установить администратор ** Запросы Artifactory могут извлекать удаленные артефакты ** для '/ repo'. Однако для изучения, почему решение '/ repo' не рекомендуется - @JBaruch? – Shane

+0

Использование '/ repo' не рекомендуется, так как оно поражает цель создания разных наборов репозиториев - моментальных снимков и промежуточных версий. Вы не можете создать конвейер выпуска, используя '/ repo', потому что каждый может получить доступ ко всему, и продвижение артефактов не имеет никакого смысла тогда. – JBaruch