2016-07-26 4 views
1

У меня есть проект градиента с одним модулем.Почему Gradle не применяет область зависимостей правильно в sourceSets в IntelliJ 2016?

Я объявил «при условии» конфигурации для обеспечения при условии, контекстные зависимостей в родительском build.gradle файле:

subprojects { 
    apply plugin: 'maven' 
    apply plugin: 'java' 
    apply plugin: 'idea' 

    configurations { 
     provided 
    } 

    idea { 
     module { 
      scopes.PROVIDED.plus += [configurations.provided] 
     } 
    } 

    sourceSets { 
     main.compileClasspath += configurations.provided 
     test.compileClasspath += configurations.provided 
     test.runtimeClasspath += configurations.provided 
    } 

    ... other stuff... 
} 

В модуле build.gradle я объявил следующие зависимости:

dependencies { 
    testCompile 'org.elasticsearch:elasticsearch:2.3.1:tests' 
    compile 'org.apache.commons:commons-io:1.3.2' 
    compile 'org.apache.commons:commons-lang3:3.4' 
    compile 'org.elasticsearch:elasticsearch:2.3.1' 
    compile 'org.slf4j:slf4j-api:1.7.12' 
    provided 'org.slf4j:slf4j-simple:1.7.12' 
} 

Когда Я расширяю окно инструмента «Грейдл», он объявляет вторую и последнюю зависимость там, как это предусмотрено, хотя и имеет область компиляции:

Screen shot of Gradle tool window

я ожидал бы увидеть зависимость перечисленных с (Compile) рядом с ней в этом окне инструмента, не (Provided).

Итак, вопрос: почему я не?

Это потому, что реализована реализация slf4j (slf4j-simple) и зависит от slf4j-api, поэтому автоматически делает это предоставленным? Как это остановить? Должен ли я прекратить это? Я хочу, чтобы API как скомпилированная зависимость, но мне нужны проекты, которые используют это, чтобы принять решение об их собственной реализации ...

ответ

0

У меня была такая же проблема с IntelliJ IDEA Ultimate build 163.12024.16. Я не смог это исправить. НО он волшебным образом исчез, когда я обновился, чтобы построить 171.4249.39. (При повторном использовании предыдущей сборки область снова возвращается к неверному «предоставленному».)