If you already have a Maven project and you want to modify it so that it generates an OSGi bundle, perform the following steps:
Configure Maven to generate an OSGi bundle by changing the package type to
bundle in your project's pom.xml file. Change the
contents of the packaging element to bundle, as shown in
the following example:
<project ... >
...
<packaging>bundle</packaging>
...
</project>The effect of this setting is to select the Maven bundle plug-in,
maven-bundle-plugin, to perform packaging for this project. This
setting on its own, however, has no effect until you explicitly add the bundle
plug-in to your POM.
To add the Maven bundle plug-in, copy and paste the following sample
plugin element into the project/build/plugins section
of your project's pom.xml file:
<project ... >
...
<build>
<defaultGoal>install</defaultGoal>
<plugins>
...
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
<Import-Package>*</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
...
</project>Where the bundle plug-in is configured by the settings in the
instructions element.
For some specific recommendations on configuring the bundle plug-in for Apache CXF and Apache Camel, see Packaging a Web Service in a Bundle and Spring example.
For an in-depth discussion of bundle plug-in configuration, in the context of the OSGi framework and versioning policy, see Managing OSGi Dependencies.
It is almost always necessary to specify the JDK version in your POM file. If your
code uses any modern features of the Java language—such as generics, static
imports, and so on—and you have not customized the JDK version in the POM,
Maven will fail to compile your source code. It is not
sufficient to set the JAVA_HOME and the PATH environment
variables to the correct values for your JDK, you must also modify the POM
file.
To configure your POM file, so that it accepts the Java language features
introduced in JDK 1.6, add the following maven-compiler-plugin plug-in
settings to your POM (if they are not already present):
<project ... >
...
<build>
<defaultGoal>install</defaultGoal>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
...
</project>







