[GRADLE-2133] Eclipse plugin doesn't attach source for the gradleApi() dependency Created: 28/Feb/12  Updated: 10/Feb/17  Resolved: 10/Feb/17

Status: Resolved
Project: Gradle
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Gradle Forums Assignee: Unassigned
Resolution: Won't Fix Votes: 4

Issue Links:
Related
Related to GRADLE-1219 idea and eclipse plugins should add s... Resolved

 Description   

Hi,

The eclipse plugin usually downloads all source code and attaches to the artifacts within eclipse by default. This seems to work whenever source code is available, which is great.

However, I'm developing Gradle Tasks / Plugins and am using the special "gradleApi()" dependency which doesn't seem to attach the gradle sources within eclipse, which doesn't make sense since the gradle-all distribution includes the gradle sources.

Having the gradle sources attached within eclipse would make task / plugin development a lot easier.

Best regards,
Mike



 Comments   
Comment by Gradle Forums [ 28/Feb/12 ]

As a workaround, you can attach the sources from the gradle distribution if you have downloaded them:

import org.gradle.plugins.ide.eclipse.model.*

eclipse {
classpath {
file {
whenMerged {Classpath cp ->
String gradleHome = gradle.getGradleHomeDir().absolutePath.replace(File.separator, '/')
String gradleSrc = "${gradleHome}/src"

cp.entries.each {ClasspathEntry entry ->
if ((entry in AbstractLibrary) && (entry.library.file.name.startsWith('gradle-'))) {
entry.sourcePath = new org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory().fromPath(gradleSrc)
}
}
}
}
}
}

Cheers,
Rolf

Comment by Gradle Forums [ 28/Feb/12 ]

Thanks for your workaround, Rolf. That worked for me. Of course, it would be desirable for Gradle to do that automatically before 1.0 is released

Best regards,
Mike

Comment by Thomas Heilbronner [ 08/Jul/12 ]

Seems to be a duplicate of GRADLE-1219

Comment by Janneth Malibago [ 08/Jan/14 ]

When using the Gradle Wrapper then only the binary version of Gradle is downloaded to $GRADLE_USER_HOME (e.g. C:\Users\<user>\.gradle\wrapper\dists)
The workaround described above will create a "sourcepath" that point to a non existent directory (e.g. "C:/Users/<user>/.gradle/wrapper/dists/gradle-1.10-bin/qtvcssosa3asn4t6njd64fm3i/gradle-1.10/src")

Thus, when using the Gradle Wrapper we need to improve the workaround described above:

task wrapper(type: Wrapper) {
	gradleVersion = '1.10'
	// Get gradle-all distribution that contains not only the binaries but also the sources.
	distributionUrl = 'http://services.gradle.org/distributions/gradle-1.10-all.zip'
}

import org.gradle.plugins.ide.eclipse.model.*
eclipse {
	classpath {
		file {
			whenMerged {Classpath cp ->
				String gradleHome = gradle.getGradleHomeDir().absolutePath.replace(File.separator, '/')
				String gradleSrc = "${gradleHome}/src"
				cp.entries.each {ClasspathEntry entry ->
					if ((entry in AbstractLibrary) && (entry.library.file.name.startsWith('gradle-'))) {
						def matcher = entry.library.file.name =~ "gradle-(.*)-(.*)"
						String sourcePath= gradleSrc + '/' + matcher[0][1];
						entry.sourcePath = new org.gradle.plugins.ide.eclipse.model.internal.FileReferenceFactory().fromPath(sourcePath)
					}
				}
			}
		}
	}
}
Comment by Sebastien Tardif [ 25/Feb/14 ]

I'm not sure it's 100% related, but there is a known bug about not seeing source code of third party dependencies, and a workaround is listed here -> http://stackoverflow.com/questions/12836089/why-is-eclipse-not-attaching-3rd-party-libs-source-files-to-a-wtp-faceted-gradle

Comment by Oliver Trosien [ 02/May/16 ]

While IntelliJ seems to be able to attach sources, eclipse still does not. Is that maybe a bug to be filed at the Buildship bugtracker?

Comment by Benjamin Muschko [ 15/Nov/16 ]

As announced on the Gradle blog we are planning to completely migrate issues from JIRA to GitHub.

We intend to prioritize issues that are actionable and impactful while working more closely with the community. Many of our JIRA issues are inactionable or irrelevant. We would like to request your help to ensure we can appropriately prioritize JIRA issues you’ve contributed to.

Please confirm that you still advocate for your JIRA issue before December 10th, 2016 by:

  • Checking that your issues contain requisite context, impact, behaviors, and examples as described in our published guidelines.
  • Leave a comment on the JIRA issue or open a new GitHub issue confirming that the above is complete.

We look forward to collaborating with you more closely on GitHub. Thank you for your contribution to Gradle!

Comment by Benjamin Muschko [ 10/Feb/17 ]

Thanks again for reporting this issue. We haven't heard back from you after our inquiry from November 15th. We are closing this issue now. Please create an issue on GitHub if you still feel passionate about getting it resolved.

Generated at Wed Jun 30 12:13:41 CDT 2021 using Jira 8.4.2#804003-sha1:d21414fc212e3af190e92c2d2ac41299b89402cf.