Eclipse/Maven and "Resolve dependencies from workspace projects" can't mix jars and source?

13,347

You might want to have a look at the build helper maven plugin.

You can configure it like this :

              <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.5</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>target/generated-sources</source>
                                <source>target/jaxws/wsimport/java</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin> 

This will tell your eclipse maven plugin to have a look at the generated sources and include it in your project classpath.

You can also add the generated sources manually to your classpath in eclipse. (right-click on the generated folder -> add to build path)

Share:
13,347
TheCoolah
Author by

TheCoolah

Updated on September 16, 2022

Comments

  • TheCoolah
    TheCoolah over 1 year

    I've got what seems like a corner case for Eclipse/Maven and "Resolve dependencies from workspace projects". My project has a mix of written code and generated code, with the generated code coming from a dependency which uses JAXWS.

    The problem is that if I check "Resolve dependencies", Eclipse/Maven ignores any JAR dependencies and tries to resolve everything by only looking at the workspace, which results in Eclipse showing errors like "Package/Class not found" (related to the generated code) even though the project will build fine with Maven from the command line.

    On the other hand, if I uncheck it, it resolves everything by only looking at the JARs in the Maven repository. The second option generally works, but when I do something like Ctrl-click on a class or variable, I get the Class File Editor and "Source not found", which isn't terribly useful. Also, it can get out of sync if I edit code in the IDE but don't run "maven install" after that.

    I suppose this is mainly an inconvenience with Eclipse but it's annoying. I am considering resolving this by modifying the Maven dependencies to build with source (or debug) but I can't necessarily do this with everything. Is the "Resolve dependencies" option intended to work exclusively one way or the other as I've described?