Buildship Project Dependencies -- "Source Not Found"

buildship

(bob.lloyd.1981) #1

Trying out Buildship 1.0.20 today with Eclipse Neon (installed manually through marketplace, etc).

I imported my project (~100 projects). While I have no errors in my source (no red X’s), source linking isn’t working. I can navigate a Java file, and when I ctrl-click on a class from another project in the multi-project build, it takes me to the .class file in the “Project and External Dependencies” section, instead of the source of the linked project.

“The JAR of this class file belongs to container ‘Project and External Depencencies’ which does not allow modifications to source attachments on its entries.”

The reference in “Project and External Dependencies” is pointing to “main - /path/to/my/build/classes”

Is there something I’m missing that I need to configure (in my eclipse plugin on my build.gradle files)? I have another (albeit, much smaller; only 4 project) multi-project build, where this works just fine, out of the box, no special configuration.

I’ve tried removing any eclipse plugin configuration as well, and still no luck with it. (Unfortunately, this is a rather large project, and I can’t reproduce with my smaller projects, so I can’t give an example of my configuration, but at this point, there’s little/no eclipse specific code in my project).

Is there anything that would be stomping on the project-source link?


(bob.lloyd.1981) #2

So after doing some digging on Eclipse configurations and where the classpath information is actually stored (not in the .classpath files, as it used to be in older Greclipse-IDE days :slight_smile: ), I found the information here:

/Users/me/eclipseProjectName/.metadata/.plugins/org.eclipse.buildship.core/classpath-persistence/projectA

In this file, there are lots of ‘classpathentry’ nodes, and I see two that reference my ‘other’ project in my multi project build:

<classpathentry kind="lib" path="/Users/me/git/product/projectB/build/classes/main">
        <attributes>
                <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry>
<classpathentry kind="src" path="/projectB">
        <attributes>
                <attribute name="org.eclipse.jst.component.nondependency" value=""/>
        </attributes>
</classpathentry>

The second entry (kind=‘src’) looks like what I want, because that’s the source link, but the kind=‘lib’ is getting in the way. Is there anyway to configure this in, perhaps, the eclipse plugin? I couldn’t find anything that would configure this classpath container, as it’s a) generated by BuildShip, and b) it’s not part of the project.classpath configuration (since that, to my understanding, configures the .classpath file).