Sofern Abhängigkeiten mit Gradle (JetGradle) und Intellij Idea 13
Habe ich ein multiproject bauen mit mehreren Krieges Module, hängt eine Glas-Modul.
Beide Krieg-und-Glas-Module haben Abhängigkeiten über Bibliotheken wie Spring, Hibernate und so weiter, diese Abhängigkeiten werden definiert als providedCompile auf den Krieg-Module und Kompilierung auf das Glas.
Das problem ist, dass wenn JetGradle aktualisiert die Abhängigkeiten alle Artefakte haben Fehler, wie die Abhängigkeiten aus dem Glas-Modul erforderlich sind, auf die Artefakte.
Ich würde gerne jede dieser Lösungen:
- Gehören die Bibliotheken in das lib-Ordner des Servers und haben Intellij behandeln Sie so, wie vorgesehen.
- Gehören die Bibliotheken als Projekt-wide-Bibliotheken irgendwie, so intellij legt Sie auf alle Artefakte auch nach dem gradle dependencies aktualisiert werden.
Auf der anderen Seite meine Herangehensweise konnte völlig falsch, von Anfang an.
Die Abhängigkeiten in den Krieg-Module sind definiert als:
providedCompile 'org.slf4j:slf4j-log4j12:1.7.5'
providedCompile 'org.slf4j:jcl-over-slf4j:1.7.5'
...
compile(project(':jarModule')) {transitive = false}
...
Den Abhängigkeiten in der jar-Modul sind wie folgt definiert:
...
compile 'org.slf4j:slf4j-log4j12:1.7.5'
compile 'org.slf4j:jcl-over-slf4j:1.7.5'
...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die beste Lösung, die ich fand, war um die transitive "kompilieren" Abhängigkeiten aus dem Glas-Modul-wie mit dem folgenden code in die Gradle-Konfiguration-Datei:
Für Gradle 2.0+ ändern, das Letzte bit so sein:
Diese Lösung funktioniert mit der Intellij Gradle-plugin und auch die Idee, die Aufgabe in Gradle
Habe ich diese Lösung arbeitet auf der Grundlage der Informationen über diese urls:
https://github.com/Netflix/RxJava/pull/145
http://www.gradle.org/docs/current/dsl/org.gradle.plugins.ide.idea.model.IdeaModule.html
Ich hoffe, dies hilft jemand anderes
scopes.PROVIDED.plus += [configurations.provided]
. Siehe forums.gradle.org/gradle/topics/...Cannot get property 'plus' on null object
provided
auf dieconfigurations
block?Ich habe versucht, die obige Lösung aber ein problem gefunden. In meinem Fall hatte ich ein sub-Projekt, das hatte die oben beschriebenen Konfiguration. Das problem war, dass die transitiven Abhängigkeiten der sub-Projekt wurden nicht exportiert wird in die IntelliJ-Konfiguration, was dazu führte, das Projekt zu stoppen kompilieren.
Ich habe einige Graben um und stolperte über dieses kleine Juwel, das das problem behoben.
https://github.com/gradle/gradle/blob/ccddc438ce09293d84030ebe31668d739c8a228a/gradle/providedConfiguration.gradle
Hinzufügen, um die Antwort von Adrijardi, für Gadle 2.0 + nicht nur, dass ich ändern müssen
zu
Musste ich auch ändern
zu
Beachten Sie die zusätzlichen Satz von Klammern auf der zweiten code-Beispiel