Плагин Gradle Eclipse - невозможно прикрепить исходный код

Плагин Gradle eclipse - невозможно прикрепить исходный код

Исходный код прикреплен к JAR, но Eclipse продолжает показывать «Source not found», пока я перешел к исходному тексту с помощью «F3 - Открыть объявление».

Проверенные инструменты:

  1. Gradle 2.4

  2. Затмение 4.4

1. Проект 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. Проблема - путь к классам Eclipse

Просмотрите сгенерированный путь к классам Eclipse, Путь сборки Java. Gradle создаст еще один «Web App libraries» и назначит ему все зависимости, но без исходного кода.

gradle-eclipse-source-not-found

И «Библиотеки веб-приложений» имеют наивысший приоритет для загрузки.

gradle-eclipse-source-not-found-1

Это причина, по которой появилось сообщение об ошибке «Источник не найден».

2. Решение

Чтобы исправить это, поместите библиотеки «Веб-приложение» в конец пути сборки.

Этот скрипт Gradle всегда будет переупорядочивать «Web App libraries» вниз каждый раз, когда вы создаете файл пути к классам Eclipse через 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'])
    }
}

КредитAndreas Kuhrwahl, см. Этотthread.

gradle-eclipse-source-not-found-2

Note
Я бы хотел, чтобы команда Gradle исправила эту проблему в ближайшее время, немного забавно использовать хак вbuild.gradle, чтобы просто прикрепить исходный код.