Gradle Eclipse Plugin - Quellcode kann nicht angehängt werden

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:

  1. Gradle 2.4

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

gradle-eclipse-source-not-found

Und die „Web App Libraries“ haben die höchste Priorität beim Laden.

gradle-eclipse-source-not-found-1

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.

gradle-eclipse-source-not-found-2

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.