Gradle Eclipse Plugin - Quellcode kann nicht angehängt werden
Der Quellcode ist an die JAR angehängt, aber Eclipse zeigt weiterhin "Source not found" an, während ich über "F3 - Open Declaration" zur Quelle gesprungen bin.
Getestete Werkzeuge:
-
Gradle 2.4
-
Eclipse 4.4
1. Gradle Eclipse-Projekt
1.1 A web project build with Gradle and development in Eclipse IDE.
build.gradle
apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' //...
1.2 Generate the Eclipse project settings.
$ gradle eclipse
2. Problem - Eclipse-Klassenpfad
Überprüfen Sie den generierten Eclipse-Klassenpfad Java Build Path. Gradle erstellt ein weiteres "Web App libraries" und weist ihm die gesamten Abhängigkeiten zu, jedoch ohne den Quellcode.
Und die „Web App Libraries“ haben die höchste Priorität beim Laden.
Dies ist der Grund, der die Fehlermeldung "Quelle nicht gefunden" verursacht hat.
2. Lösung
Um dies zu beheben, platzieren Sie die "Web App" -Bibliotheken am Ende des Erstellungspfads.
Dieses Gradle-Skript ordnet die "Web App libraries" jedes Mal neu an, wenn Sie die Eclipse-Klassenpfaddatei über Gradle generieren
build.gradle
apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' eclipse.classpath.file { withXml { xml -> def node = xml.asNode() node.remove( node.find { it.@path == 'org.eclipse.jst.j2ee.internal.web.container' } ) node.appendNode( 'classpathentry', [ kind: 'con', path: 'org.eclipse.jst.j2ee.internal.web.container', exported: 'true']) } }
Gutschrift aufAndreas Kuhrwahl, siehe diesethread.
Note
Ich wünschte, das Gradle-Team würde dieses Problem bald beheben. Es ist ein bisschen lustig,build.gradle
zu hacken, um nur den Quellcode anzuhängen.