Gradle eclipse plugin - impossible d’attacher du code source

Plug-in Gradle eclipse - impossible d'attacher le code source

Le code source est attaché au JAR, mais Eclipse continue d'afficher «Source not found» pendant que je suis passé à la source via «F3 - Open Declaration».

Outils testés:

  1. Gradle 2.4

  2. Eclipse 4.4

1. Projet Gradle Eclipse

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. Problème - Chemin de classe Eclipse

Examinez le chemin de classe Eclipse généré, Java Build Path. Gradle crée un autre «Web App libraries» et y assigne toutes les dépendances, mais sans le code source.

gradle-eclipse-source-not-found

Et les «bibliothèques d'applications Web» ont la priorité absolue à charger.

gradle-eclipse-source-not-found-1

C'est la raison qui a provoqué le message d'erreur «Source non trouvée».

2. Solution

Pour résoudre ce problème, placez les bibliothèques «Web App» en bas du chemin de construction.

Ce script Gradle réorganisera toujours les «Web App libraries» en bas à chaque fois que vous générez le fichier de chemin de classe Eclipse via Gradle

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

Crédit àAndreas Kuhrwahl, voir cethread.

gradle-eclipse-source-not-found-2

Note
Je souhaite que l'équipe Gradle corrige ce problème bientôt, un peu drôle de mettre un hack dansbuild.gradle pour attacher simplement le code source.