2014-02-13 2 views
10

Artifactory имеют два предопределенных репозиториев для местных библиотек:Configure Gradle, чтобы опубликовать выпустить или снимок хранилище

  • libs-release-local: локальный репозиторий для библиотек в доме
  • libs-snapshot-local: локальный репозиторий для входов дом моментальные снимки

генератор сценарий Gradle Artifactory может генерировать скрипт, который использует только одно хранилище для артефактов публикации, используя artifactory плагин для Gradle.

Вот пример (только соответствующая часть):

artifactory { 
    contextUrl = "${artifactory_contextUrl}" 
    publish { 
     repository { 
      repoKey = 'libs-release-local' 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
      maven = true 

     } 
    } 
    resolve { 
     repository { 
      repoKey = 'libs-release' 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
      maven = true 

     } 
    } 
} 

Я хотел бы настроить плагин использовать libs-release-local или libs-snapshot-local репозитория, основанный на версию (то есть, если версия заканчивается -SNAPSHOT затем опубликовать libs-snapshot-local).

Я видел, что это возможно, используя встроенный maven плагин Gradle (см snapshotRepository элемента mavenDeployer в uploadArchives задаче), но эта функция, кажется, не доступна в artifactory плагине.

Есть ли способ достичь этого желаемого поведения?

ответ

15

Поскольку это отличный код , просто используйте переменную, которая зависит от версии.

String repo = version.endsWith('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local' 

...

repository { 
     repoKey = repo 
     username = "${artifactory_user}" 
     password = "${artifactory_password}" 
     maven = true 

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