2015-08-28 4 views
0

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

  1. толчка библиотекой для Artifactory с помощью Gradle -> Готова
  2. получить услугу, чтобы вытащить зависимую библиотеку из artifactory -> Вопросы

От этого я понимаю, что это можно сделать с помощью Gradle Artifactory Plugin.

Ниже приведен пример build.gradle:

buildscript { 
    repositories { 
      jcenter() 
     } 

    } 
    dependencies { 
     classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.1.0' 
    } 
} 


apply plugin: "com.jfrog.artifactory" 
apply plugin: 'eclipse' 
apply plugin: 'java' 
apply plugin: 'maven' 
apply plugin: 'maven-publish' 
apply plugin: 'eclipse-wtp' 
apply plugin: 'war' 

group = 'a.b.c' 

allprojects { 
    apply plugin: 'artifactory' 
} 

configurations{ 
... 
} 

dependencies { 
    compile group: 'a', name: 'b', version:'c' 
    compile group: 'x', name: 'y', version:'z' 
} 

artifactory { 
    contextUrl = "${artifactory_contextUrl}" //The base Artifactory URL if not overridden by the publisher/resolver 
    publish { 
     repository { 
      repoKey = 'gradle-release-local' 
      username = "${artifactory_user}" 
      password = "${artifactory_password}" 
      maven = true 
      ivy { 
       ivyLayout = '[organization]/[module]/ivy-[revision].xml' 
       artifactLayout = '[organization]/[module]/[revision]/[module]-[revision](-[classifier]).[ext]' 
       mavenCompatible = false 
      } 
     } 
    } 
    resolve { 
     repository { 
      repoKey = 'gradle' 
      repoKey = 'gradle-release-local' 
      maven = true 

     } 
    } 
} 

Образец Settings.gradle

rootProject.name = ‘partnering' 
includeFlat ‘a' 
project(‘:a').projectDir=new File(settings,'../a') 

Примечание:

В зависимости, как вы можете видеть

  1. группа компиляции: 'a', имя: 'b', версия: 'c' Для этого требуется repoKey = gradle-release-local
  2. группа компиляции: 'x', имя: 'y', version: 'z' Это необходимо repoKey = Grade

ОШИБКА:

  1. не удается разрешить внешний аЬс зависимости, потому что никаких хранилищ не определены.
  2. Однако я могу видеть библиотеку уже присутствует в Artifactory

Может кто-нибудь пожалуйста, дайте мне с этим вопросом.

ответ

0

Если вы хотите вытащить зависимости из удаленного репозитория, вам необходимо определить их в build.gradle. Нажатие библиотек в репозиторий изолировано от вытягивания библиотек.

В следующем примере приведены два примера. Один для maven central и один для пользовательского репозитория.

repositories { 
    mavenCentral() 
    maven { 
     url "http://www.edwardraff.com/maven-repo/" 
    } 
} 

Посмотрите на the documentation.

+0

Я не уверен, что это верно для Gradle Artifactory Plugin – Jason

+0

Почему бы нет, намеки? – Schrieveslaach

+0

Поскольку плагин Artifactory принимает решение, вам не требуется дополнительное объявление 'repositories'. – JBaruch

1

gradle - это виртуальный репозиторий, он объединяет в него количество других репозиториев.

В конфигурации репозитория убедитесь, что виртуальный репозиторий gradle содержит репозиторий gradle-release-local.

После того как вы сделали, оставьте только один номер repoKey для разрешения, gradle.

+0

Это то, что я хотел.Но предоставить больше информации для тех, кто имеет аналогичную проблему. Конфигурация Virtual Repo устанавливается в artifactory в разделе admin. – Jason

+0

Принять ответ? – JBaruch

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