Gradle eclipseプラグイン - ソースコードを添付できません

Gradle Eclipseプラグイン-ソースコードを添付できません

ソースコードはJARに添付されていますが、「F3 – Open Declaration」を介してソースにジャンプしている間、Eclipseは「Source not found」を表示し続けます。

テストされたツール:

  1. Gradle 2.4

  2. Eclipse 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 Build Pathを確認します。 Gradleは別の「Web App libraries」を作成し、依存関係全体をそれに割り当てますが、ソースコードはありません。

gradle-eclipse-source-not-found

そして、「Web App Libraries」はロードするための最優先事項です。

gradle-eclipse-source-not-found-1

これが、「ソースが見つかりません」というエラーメッセージの原因です。

2. 溶液

修正するには、「Webアプリ」ライブラリをビルドパスの一番下に配置します。

このGradleスクリプトは、Gradleを介してEclipseクラスパスファイルを生成するたびに、常に「Web App libraries」を一番下に並べ替えます。

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にハックを入れてソースコードを添付するのは少しおかしいです。