2016-07-26 14 views
1

Ich habe ein Großprojekt mit einem einzigen Modul.Warum verwendet Gradle den Abhängigkeitsbereich nicht korrekt unter sourceSets in IntelliJ 2016?

Ich habe die 'vorgesehen' Konfiguration erklärt versehen Bereichs-Abhängigkeiten in der übergeordneten build.gradle Datei zu aktivieren:

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... 
} 

Im Modul build.gradle ich die folgenden Abhängigkeiten deklariert haben:

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' 
} 

Wenn Ich erweitere das Gradle-Werkzeugfenster, es deklariert auch die vorletzte Abhängigkeit dort, auch wenn es einen Übersetzungsbereich hat:

Screen shot of Gradle tool window

Ich würde erwarten, dass die Abhängigkeit aufgeführt mit (Compile) neben ihm in diesem Tool-Fenster, um zu sehen, nicht (Provided).

Die Frage ist also: Warum bin ich nicht?

Liegt es daran, dass die Implementierung von slf4j (slf4j-simple) zur Verfügung gestellt wird und von slf4j-api abhängt, also automatisch auch diese zur Verfügung stellt? Wie höre ich damit auf? Sollte ich damit aufhören? Ich möchte die API als eine kompilierte Abhängigkeit, aber ich möchte Projekte, die dies verwenden, um über ihre eigene Implementierung zu entscheiden ...

Antwort

0

Ich hatte das gleiche Problem mit IntelliJ IDEA Ultimate bauen 163.12024.16. Ich konnte es nicht beheben. Aber es verschwand magisch, als ich ein Upgrade für den Build 171.4249.39 machte. (Wenn der vorherige Build erneut verwendet wird, kehrt das Oszilloskop erneut zu dem falschen "zur Verfügung gestellt" zurück.)