I'm trying to use Maven and m2e to develop an RCP client that includes several third-partly libraries. In the past, I've been able to use the custom plugin builds and a local repository of third-party jars, but I was hoping to do better with Maven.
As a minimal example, I've tried to package a recent Google Guava release as a third-party OSGi component. I create the component with "bundle" packages, and the target/../BundleGuava..jar has all the expected components. The rest of the details are in the attached zip, but the bundle instructions are:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.3</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Embed-Dependency>*</Embed-Dependency>
<Export-Package>
com.google.common.*
</Export-Package>
<_nouses>true</_nouses>
<_removeheaders>
Embed-Dependency,
Embedded-Artifacts,
Import-Package,
Private-Package
</_removeheaders>
</instructions>
</configuration>
</plugin>
However, I cannot get the client plugin, GuavaUser, to properly accept the new module. I thought that the following dependency would make the artifact from above available in Eclipse.
<dependencies>
<dependency>
<groupId>org.demo.bundle</groupId>
<artifactId>BundleGuava</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
The Maven build appears to work fine, but Eclipse reports problems. The sample call for Joiner.on(", ").join("Hello", "world") turns into an ClassNotFoundException.
I'd like to do most of my debugging in the Eclipse IDE environment, but that would require successful launches from the Eclipse debugger. What is the best way to make the bundled third-party library available to the Eclipse IDE.