Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to teach Eclipse to include Maven source packages on the source path?

How can I teach Eclipse with m2eclipse to include all source .jar in my local Maven repository in the source path when looking up library source files while debugging?

like image 835
desolat Avatar asked Sep 23 '09 17:09

desolat


4 Answers

You should enabled the Download Artifact Sources preference.

removed dead ImageShack link

For existing artifacts you can use the Download sources action:

removed dead ImageShack link

like image 105
Robert Munteanu Avatar answered Dec 11 '22 05:12

Robert Munteanu


I was having this exact same problem-- I used the Maven Source Plugin to deploy the source to our repo, and when I included that project in a separate one, try as I might, it wouldn't include the source on the Eclipse build path. I had done this before for a previous job and I knew it was possible to have the source included on the buildpath so that Eclipse will automatically link the source in the integrated debugger simply by clicking "Download Sources" as described in the other answers.

Here is what I had (which was not working for me). I had gotten this snippet of code from the maven-source-plugin's webpage:

        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-sources</id>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>

This would package the source in a separate JAR and upload it to our repo, but it wouldn't automatically attach to the Eclipse debugger. Eventually, I found that I needed a <configuration><attach>true</attach></configuration> snippet included, like so:

        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-sources</id>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <attach>true</attach>
        </configuration>

After this, the source automatically attaches to the Eclipse debugger by right-clicking on the project in Package Explorer and doing "Maven > Download Sources".

I hope this solves your problem.

like image 26
Cuga Avatar answered Dec 11 '22 05:12

Cuga


Go to Window->Preferences->Maven->Installations and ensure that Maven is configured to use your Maven installation rather than the embedder.

If it is not configured to do so, Select Add... and browse to the root of your Eclipse install, and OK the selection.

M2eclipse will then read your settings file, discover your local repository, and automatically attach the sources available in the local repository.

If m2eclipse is pointing at your local repository, you should be able to right-click and select Maven->Download Sources, or enable the preferences to download them automatically. If the sources are already present, they should simply be attached. See this answer for details and pretty screenshots.

If after following those steps sources are still not being attached, it suggests that there is something wrong with your Maven installation. You could attempt to update the m2eclipse plugin to the latest to see if it resolves the problem.

like image 42
Rich Seller Avatar answered Dec 11 '22 06:12

Rich Seller


  • First of all download the jar sources. In package explorer, Maven dependencies, find your desired jar, right click on it, Maven, Download Sources.

  • The downloaded source jar is in your home, .m2 folder, repository and then navigate through the package name until you get the xxx-sources.jar.

  • Afterwards debug your maven project. In debug perspective, debug view, right click on your project, edit Source lookup, Add..., External Archive and select the downloaded source jar.

like image 36
Felipe Fernández Avatar answered Dec 11 '22 06:12

Felipe Fernández