Gradle Eclipseプラグイン-ソースコードを添付できません
ソースコードはJARに添付されていますが、「F3 – Open Declaration」を介してソースにジャンプしている間、Eclipseは「Source not found」を表示し続けます。
テストされたツール:
-
Gradle 2.4
-
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」を作成し、依存関係全体をそれに割り当てますが、ソースコードはありません。
そして、「Web App Libraries」はロードするための最優先事項です。
これが、「ソースが見つかりません」というエラーメッセージの原因です。
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を参照してください。
Note
Gradleチームがこの問題をすぐに修正してくれることを願っています。build.gradle
にハックを入れてソースコードを添付するのは少しおかしいです。