Плагин Eclipse Luna Gradle добавляет зависимость, на которую нет ссылок

Я использую Eclipse Luna и плагин Gradle для Eclipse Luna (с использованием Gradle IDE Pack 3.6.x от Pivotal). Я создал простой проект Java с поддержкой Gradle. Ниже моего build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'artifactory'

buildscript {
  repositories {
    maven { url 'http://dl.bintray.com/jfrog/jfrog-jars' }
    mavenCentral()
  }

  dependencies {
    classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '2.2.4')
  }
}

version = '1.0'

repositories {
  maven { url 'http://maven.restlet.com' }
  mavenCentral()
}

dependencies {
  compile group: 'com.cloudit4', name: 'cit4-util-lib', version: '1.0'
  compile group: 'org.restlet.gae', name: 'org.restlet', version: '2.3.2'
  compile group: 'org.restlet.gae', name: 'org.restlet.ext.servlet', version: '2.3.2'
}

// Artifactory...
artifactory {
  contextUrl = 'http://192.168.245.1:8081/artifactory'   //The base Artifactory URL if not overridden by the publisher/resolver
  publish {
    contextUrl = 'http://192.168.245.1:8081/artifactory'   //The base Artifactory URL for the publisher
    //A closure defining publishing information
    repository {
        repoKey = 'libs-release-local'   //The Artifactory repository key to publish to
        username = 'admin'          //The publisher user name
        password = 'mypass'       //The publisher password
    }
  }
  resolve {
    contextUrl = 'http://192.168.245.1:8081/artifactory'   //The base Artifactory URL for the resolver
    repository {
        repoKey = 'repo'  //The Artifactory (preferably virtual) repository key to resolve from
    }
  }
}

Как вы могли заметить, я использую Artifactory для размещения своих собственных артефактов (локальные библиотеки, cit4-util-lib). Обычно я работаю с проектами, в которых используется библиотека Google App Engine, и много раз я включал ее в Gradle с помощью подключаемого модуля appengine для Gradle. Но, как видите, на этот раз это не так. Ни одна из зависимостей не связана с библиотеками Google App Engine. Но когда я выполняю обновление зависимостей Gradle, в мои зависимости включается библиотека Google App Engine. Кто-нибудь видел такое поведение? Где gradle ищет библиотеки для включения в проект? это только зависимости, которые явно установлены в файле build.gradle, или их больше? Спасибо заранее за любую помощь.

С уважением

Марко


person Marco Castillo    schedule 27.05.2015    source источник


Ответы (1)


Когда вы помещаете зависимость в закрытие зависимости, gradle будет включать все зависимости этих зависимостей. (ищите «переходные зависимости» на https://docs.gradle.org/current/userguide/artifact_dependencies_tutorial.html)

Посмотрите на старую версию pom для зависимости org.restlet.gae: https://maven-repository.com/artifact/org.restlet.gae/org.restlet/2.3.1/pom вы можете увидеть зависимость appengine. Я бы подумал, что это оттуда.

person loosebazooka    schedule 02.06.2015
comment
Спасибо, тайна раскрыта. В следующий раз буду искать транзитивные зависимости. - person Marco Castillo; 04.06.2015