2015-05-27 5 views
0

Я использую Eclipse Luna и плагин Gradle для Eclipse Luna (с использованием Eradup IDE Pack 3.6.x из Pivotal). Я создал простой Java-проект с поддержкой Gradle. Ниже мой build.gradleПлагин Eclipse Luna 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 или есть еще? Заранее благодарю за помощь.

С уважением

Marco

ответ

0

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

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

+0

спасибо, тайна решён. В следующий раз я буду искать транзитивные зависимости. –